タグ

C++に関するunaristのブックマーク (41)

  • コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記

    僕は先日、「コンパイル時Cコンパイラ」なるプログラムをつくって、公開した。 「コンパイル時Cコンパイラ」とは、コンパイルするとC言語プログラムのコンパイルが行われるというようなC++プログラムである。 C++のコンパイル中に C言語プログラムのコンパイルを行う、 "コンパイル時Cコンパイラ"をつくりました #ELVMhttps://t.co/kKiLU3rLFX— うどん (@kw_udon_) 2016年11月18日 自分で書いておいてなんだが、「なんのこっちゃ」という感じではある。(ちゃんと記事中で説明する。) 実際、変なプログラムではあるのだが、とても嬉しいことに多くの人に面白がっていただき、予想だにしなかった大きな反響をいただいた。 Hacker Newsで1位になったり、LLVMの公式ブログで紹介されたり、果てはC++の作者であるBjarne Stroustrupにも言及されるに

    コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
  • C++からWindows APIを呼び易くする

    Windows APIの多くはC言語を前提としています。次のように戻り値がHRESULTなどのエラーコードとなり、真の戻り値は関数の最後の引数にポインターとして返される構造をしているものが多々あります。 HRESULT Direct3DCreate9Ex( UINT SDKVersion, IDirect3D9EX **ppD3D ); これをC++言語から扱いやすくしたいと思います。 一般的には次のようなcheck()関数で異常値については例外を投げることになるでしょう。 void check(HRESULT hr){ if(FAILED(hr)) throw hr; } 題は真の戻り値です。 API関数には任意の引数があるため最後の引数を扱うのは困難です。幸いC++言語には可変長テンプレート引数があり、それをうまく扱うstd::tupleクラスとstd::tuple_elementク

    unarist
    unarist 2016/05/07
    COM周りのAPIでHRを例外に変換してoutパラメータを戻り値で取得する感じの
  • http://www.graco.c.u-tokyo.ac.jp/icpc-challenge/wp-content/uploads/2014/12/2014.pdf

  • cpprefjp - C++日本語リファレンス

    サイトcpprefjpは、プログラミング言語C++のリファレンスを提供するWebサイトです。 最新C++バージョンのリファレンスを提供していきます。 運営方針 リファレンスサイトは、C++言語の最新のリファレンスを常に提供し続けることを目標にしています。 各クラス、関数にはそれぞれ1つ以上のサンプルコードを付けていく方針です。 サイトでは、他サイトおよび規格書の直接的な翻訳ではなく、編集者の調査と考えに基づいた解説を提供していきます。 スポンサーシップ cpprefjp - Open Collective このプロジェクトは、持続的な活動のため、ユーザーの方々からのご支援をお待ちしております。上記Open Collectiveのプロジェクトでスポンサーシップの募集をしております。 ご支援いただくユーザーの方々には、以下の特典があります。 ページ (cpprefjpサイトのトップペー

    unarist
    unarist 2015/09/25
  • コンパイル時Brainfuckコンパイラ ――C++14 constexpr の進歩と限界―― - ボレロ村上 - ENiyGmaA Code

    中3女子です。 この記事は C++ Advent Claneder2014 23日の参加記事です。 constexpr とは この記事を読んでいる層には、いまさら言及するまでもないと思われるので省略する。 必要であれば このあたり の資料を参照のこと。 C++14 シンタックス上の進歩とセマンティクス上の進歩 巷では C++14 になり constexpr が簡単になったという話をしばしば耳にする。たしかに簡単になった。 では何が簡単になったかというと、もっともわかりやすいのは複文とローカル変数、制御構文の制限緩和だろう。 条件分岐やループを if, while, for, switch 等でガリガリ書くことができるようになった(ただし goto は不可だ)。 非常に簡単になったといえるが、これはあくまでシンタックス上の進歩だ。 これによって何ができるかというセマンティクス上の問題について

    unarist
    unarist 2015/04/26
    コンパイル時コンパイラ、どんな言葉遊びだ。
  • C++のカレンダー | Advent Calendar 2014 - Qiita

    Advent Calendarって何? 12月1日からクリスマスまでの間、日めくりカレンダーのようにわくわくしながら過ごすために、毎日交代で技術エントリを書いていく企画です! どんな内容を書けばいいの? C++に関連する内容ならなんでもかまいません! 最新のC++の話やC++歴史C++で書かれたライブラリやアプリケーションの話など自由に書きましょう! どこに書けばいいの? Qiitaに記事を作成してもいいですし、gistや自分のブログなどどこでも問題ありません。

    C++のカレンダー | Advent Calendar 2014 - Qiita
    unarist
    unarist 2015/04/26
  • VST3ホストを作ろう! - hwm's blog

    VST3ホストを作ろう! @hotwatermoningです。 この記事はC++ Advent Calender 2014の参加記事です。 昨年の記事では、VSTという音楽制作プラグインの規格に対応したVSTホストアプリケーションを作成しました。 しかし、前回使用したVST2.x系列のSDKは開発元であるSteinberg社からの配布が終了してしまいました。 (実は今回取り上げるVST3のSDKの中にVST2の開発に必要なソースファイルは同梱されていますが、VST2のドキュメントは含まれていません) そのような背景から、今回はVST3に対応したホストアプリケーションを作成します。 VST3の仕様について筆者が誤って理解しているところがあるかもしれません。ご了承下さい。(指摘いただけるとありがたいです) VST3とは VSTという音楽制作アプリケーション用のプラグイン規格の概要ついては、前述

    VST3ホストを作ろう! - hwm's blog
  • Home - JUCE

    JUCE is the most widely used framework for audio application and plug-in development. It is an open source C++ codebase that can be used to create standalone software on Windows, macOS, Linux, iOS and Android, as well as VST, VST3, AU, AUv3, AAX and LV2 plug-ins. JUCE allows developers to focus on the most valuable parts of their software by taking care of the differences between operating systems

    Home - JUCE
  • 2014-05-pre-Rapperswil-mailingのレビュー: N4021-N4029

    5月分の論文集も、これで残すところあと21だ。ただし、7月分の論文集が69控えている。 [重量級PDF] N4021: A Proposal to Add 2D Graphics Rendering and Display to C++ C++1yに2Dグラフィックライブラリを入れる提案論文。 グラフィックは今や日常のプログラミングに必要である。グラフィックを描画する方法は、標準で用意されているべきである。 現在の提案では、既存のcairoの設計を元に、C++風の変換をして、またインターフェースを現代的なC++に手直しして使うことになっている。 新規のAPIを設計するのはとても手間がかかる。実験的な実装をして、実際に検証する手間は莫大だ。そこで、既存の、すでに実装されていて、実績もあるcairoライブラリを土台にする。 あらゆるプラットフォーム向けのすべての機能を規格化することはできな

    unarist
    unarist 2014/07/19
    "先日、ドワンゴが主催した社内ポーカー大会で、宗教戦争を引き起こす悪意ある目的で、きのこの山とたけのこの里を設置したところ、"
  • ドワンゴC++勉強会 #1 (2014/06/28 13:30〜)

    お知らせ connpassではさらなる価値のあるデータを提供するため、イベントサーチAPIの提供方法の見直しを決定しました。2024年5月23日(木)より 「企業・法人」「コミュニティ及び個人」向けの2プランを提供開始いたします。ご利用にあたっては利用申請及び審査がございます。詳細はヘルプページをご確認ください。

    ドワンゴC++勉強会 #1 (2014/06/28 13:30〜)
    unarist
    unarist 2014/06/07
    "constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。CPUの嬌声が聞こえてきそうだ" / 定員90人のところ120人が募集開始から半日で集まったかー(白目
  • ドワンゴに入社した

    そう。タイトル通りだ。筆者、江添亮はドワンゴに雇用された。一体、どのような経緯でドワンゴに入社するに至ったのか。また、どんな仕事をしているのか。それを説明するには、時系列を追って書いたほうがいいだろう。 2013年8月21日 ふとみると、以下のようなサブジェクトのメールが届いていた。 【ご相談】ドワンゴ主催の C++11, 14 に関する勉強会にスピーカーとしてご参加頂けないでしょうか C++11? C++14? なんと、日C++14などという単語を知っている企業があったのか。しかし・・・ドワンゴ? SPAMだろうか。いや、こんなにピンポイントなSPAMがあるわけがない。 それにしても解せないメールだ。ドワンゴといえば、もちろん、あの有名なニコニコ動画の企業だ。ニコニコ動画と言えばWebサイトだ。ニコニコ動画やその関連サービスの開発にC++を使っているのだろうか。いやまて、たしか子会社

  • C++の歴史

    江添亮 http://cpplover.blogspot.jp/ boostcpp@gmail.com @EzoeRyou GFDL 1.3 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Themes Sky - Beige - Simple - Serif - Night - Default Transition Styles Cube - Page - Concave - Zoom - Linear - Fade - None - Default C++の原作者 Bjarne Stroustrup C++のオリジナルの設計者にして最初の実装者 1979年 Stroustrup、ケンブリッジで博士号を取得するべく研究中 分散システム上で動作するソフトウェアの研究 実証のため、大規模なシ

  • 株式会社ロングゲート - プログラミングの魔導書 ~Programmers’ Grimoire~ vol.1

    プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 “Construct the World, C++” ユーザーの力によって際限なく進化するプログラミング言語C++。2010年のいま、C++はどこにいるのか 目次(カッコ内に数字のある記事名についてはサンプルをご覧いただけます) 創刊に向けて Bjarne Stroustrupへのインタビュー (1 2) 江添 亮 boost::serializationの紹介 前編 (1 2 3 4) 近藤 貴俊 Variadic Template −お前を待っていた− Egtra Chronoライブラリで考える型システム melpon オーブンレンジクッキング (1 2) 高橋 晶 Hello,C++ World! 稲葉 一浩/k.inaba Crawling in the Stream zak メタプログラミングノキ

  • 中3女子でもわかる constexpr

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    中3女子でもわかる constexpr
    unarist
    unarist 2014/02/28
  • C++でunicode escape sequenceをutf8にする - Qiita

    パフォーマンス上の問題から仕方なくC++で書いてる時にうっかりエスケープシーケンスされたUnicodeに出くわす事があります。知らない人向けに書いておくと、\uXXXX(Xは十六進)の6バイトの形でUnicodeの1文字が表される文字の表記方法です。 あとサロゲートペアってのに気を使う必要があります。 unicode全部は今のところ111万2,064文字分の空間がありWikipediaのUnicode、\uXXXXの16進4文字じゃ6万5536文字しか無くて圧倒的に足りないので、\uXXXX\uXXXXXという2つのペアで1つのunicodeに対応させてる物を言います。 詳しくはこちらutf8のRFCを。 std::stringの形でエスケープシーケンスされたUnicode貰った時にそれを日語にして表示したいって状況がよくあると思うのでそれを実現する関数書きました。失敗したらfalseが

    C++でunicode escape sequenceをutf8にする - Qiita
  • C++14にやってくる見た目に分かりやすい新機能

    C++14のCDも公開され、いよいよC++14も形になってきた。いま書いているC++11だが、C++14はGCCとClangといった二大C++コンパイラーで数年のうちに実装されるだろうから、もうすぐ実際に使うことができる。 今回は、詳細な説明は省いて、サンプルコードで新機能を語りたいと思う。以下の新機能は、すでにドラフト入りしており、正式採用はまず間違いない機能である。ちなみに、コンパイルしていないので正しいかどうか検証していない。 2進数リテラル int bi = 0b11110000 ; // 10進数リテラルでは240 2進数の記述が直感的になる。 自動ストレージ上に確保される動的な長さの配列 void f( std::size_t size ) { int buf[size] ; // OK } もちろん、クラスの配列も可能だし、コンストラクターやデストラクターも正しく呼ばれる

    unarist
    unarist 2013/05/28
    ジェネリックlambda式・・・だと
  • Interpreting More Complex Declarators

  • libdcompile

    あ\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC++、好きなエディタはVim、好きなディストリはGentooですが、昨日東京の方でやっていた闇鍋プログラミング勉強会によると、★この3つはTLから変態を検出するキーワードとして使えるらしいです。ちょっと、こんなに健全な人が変態に分類されるとか誤認識にも程があると思うのですが、\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC++、好きなエディタはVim、好きなディストリはGentooですが、昨日東京の方でやっていた闇鍋プログラミング勉強会によると、★この3つはTLから変態を検出するキーワードとして使えるらしいです。ちょっと、こんなに健全な人が変態に分類されるとか誤認識にも程があると思うのですが、\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC

  • 『C++のためのAPIデザイン』レビュー - Faith and Brave - C++で遊ぼう

    翻訳監修の三宅さん( @miyayou )さんから献いただきました!ありがとうございます。 書は、関数、クラス、ライブラリといった誰かに使ってもらうためのプログラムを書くプログラマのためのです。ほかの人に使ってもらうプログラムを書くために考えるべき多くのことが書かれています。たとえば、以下のようなことを考える必要があります: ユーザーに公開するインタフェースはどうあるべきか。実装詳細はどれで、ユーザーは何を知っていれば十分なのか。それはどの場面で使用できるだろうか、いま目の前にある目的を達成できればいいのか、はたまた多くの場面で再利用したいのか。 バージョンに関しても考えなければいけない。このAPIは後方互換性を保てるほど入念に考えられているだろうか。どうしても破壊しなければいけない場合、どういう設計選択をするべきか。 ドキュメントはどこまで書くべきだろうか。自動テストは何のために書

    『C++のためのAPIデザイン』レビュー - Faith and Brave - C++で遊ぼう
  • VisualDDK - Create and debug driver projects directly from Visual Studio

    VisualDDK Develop/debug Windows drivers directly from Visual Studio! Overview VisualDDK is a Visual Studio extension that allows developing and debugging Windows kernel-mode drivers.Here are the main highlights: Provides a wizard for creating driver projects Allows debugging drivers directly from Visual Studio just like the user-mode applications Maps error messages and enables IntelliSense Automa

    unarist
    unarist 2012/10/05
    ドライバ開発に役立つVS拡張