22:22 21/11/20 ボレロ村上(村上原野)さんと constexpr のこと 去る2020年2月、縄文陶芸家にしてC++プログラマという希有な二つの顔を持つ人物がこの世を去りました。 ボレロ村上 (村上原野) 氏です。 正直なところ、陶芸家としての彼の側面については私はほとんど何も知らないに等しいです。 残された作品を見て何かを語れるほど芸術に通じているわけでもありません。 いつか機会があれば見に行こうと思っていた村上さんの作品を目にする最初の機会も、 昨年訪れた追悼展になってしまいました。 ただ、それでも私は、彼自身の登壇発表の資料 であったり、 そして何よりも縄文・陶芸に造詣の深い方々の記された幾つかの文章によって、 彼が一体何を成し遂げたのか、成し遂げようとしていたのかに触れることができています。 この夏にはクラウドファンディングで 作品集 も出版され、誰でも手にとって縄文
C++で副作用のない無限ループを書くと未定義動作になります。 「未定義動作」というのは口に出すだけでC++プログラマーを震え上がらせる力を持った言葉です。「鼻から悪魔が出てくる」という言葉で説明されるように、未定義動作を含むコードを実行した結果は何も保証することができず、バグの発見やデバッグすら困難にさせます。未定義動作下においてはコンパイラの気分によってコード片が消え、trueとfalseが同時に成立し、タイムトラベルを引き起こします1。 そのためC++ではうっかり未定義動作が埋め込まれないよう注意が払われるのが普通です。 さて、以下のC++のコードは未定義動作を引き起こします。 下の例は実際にclang/LLVMで最適化を有効にしてコンパイルするとでたらめな値を返す関数ができました。 この話をしたところ、何人かに驚かれたり異論を受け取ったりしたので、この話題について少しまとめてみました

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目:C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。UTF-8エンコーディングされた文字の型としてchar8_tを追加 - c

めでたくC++11 も出たし、さいきんはC++ AMP やC++/CX なんかの亜種も注目されてる、きょうこの頃。 そんな、いわずとしれたC++ のグルである Bjarne Stroustrup せんせい。 ビャーネとか、もっと親しみを込めてハゲなどと呼んでおけば問題は表面化しないのですが。 困ったことに、せんせいはデンマーク人なのでした。 ふだん英語を話している人たちも、先生の苗字はどう呼んだらいいか分からないのです。 日本ではWikipedia*1 が「ストロヴストルップ」「ストラウストラップ」「ストゥロウストゥループ」のカナ転写を紹介し、ちまたでは「すぽっすぽっ」「すっぽすっぽ」などのバリエーションで呼ばれています。はて、どれが正しいのでしょうか? せんせいが英語話者のために書いた FAQ*2 には 発音は北欧っ子*3じゃないと難しいかもね。いままで聞いたなかでいちばんオス
「ITに全く関係ない分野からITに飛び込んで活躍しているエンジニア」や「ITとIT以外の分野の境界を行き来しながら成果を上げているエンジニア」などを「越境エンジニア」と名付け、1カ月に一人ずつインタビューを掲載する。今月取り上げるのは村上原野(むらかみげんや)氏。縄文土器にインスピレーションを受けた創作を行っている陶芸家だ。同時にネットでは「狂える中3女子ボレロ村上」というハンドルネームでC++に詳しいプログラマーとしても知られている。今回は、メタプログラミングと縄文アートに取り組む理由などを聞いた。 (前回から続く) 高専でメタプログラミングを独学で始めた頃は、そうした技術的な話ができる知り合いはいませんでした。技術的な交流ができるようになったのは、就職してTwitterを始めてからです。C++をキーワードに検索して、出てきた人たちを上からフォローしていきました。それが高橋晶さん(現在は

「ITに全く関係ない分野からITに飛び込んで活躍しているエンジニア」や「ITとIT以外の分野の境界を行き来しながら成果を上げているエンジニア」などを「越境エンジニア」と名付け、1カ月に一人ずつインタビューを掲載する。今月取り上げるのは村上原野(むらかみげんや)氏。縄文土器にインスピレーションを受けた創作を行っている陶芸家だ。同時にネットでは「狂える中3女子ボレロ村上」というハンドルネームでC++に詳しいプログラマーとしても知られている。今回は、縄文文化に深く影響を受けた生い立ちやプログラミングとの出会いなどを聞いた。 私の肩書は縄文造形家であり、陶芸の縄文アートを手掛けています。縄文アートとは、日本の縄文時代の造形やスピリットにインスピレーションを受けたアートの総称です。私はその中でも、現代の窯で焼く陶芸とは全く異なる縄文時代の焼き方、土、造形技法といった縄文そのものの技法を再現して創作を

概要 歌舞伎座.techとは 株式会社ドワンゴ主催の歌舞伎座タワーで開催される技術勉強会です。 参加できない方はニコ生による配信をご視聴ください。 当日の配信ページ 今回のテーマ 今回は、勉強会への慣れをテーマに、初心者の発表経験を目的として開催します。 初心者発表枠は、まだ勉強会で発表したことがないか、発表経験の少ない人に発表する機会を持ってもらうことを目的としています。 初歩的なことでも積極的に発表してください。 20分枠は20分話さなくても構いません。 クソザコ枠はクソザコ 発表方法 発表枠に応募の上で、コメントに発表タイトルを書き込んでください。 初心者枠の発表内容はC++に関係していれば何でも構いません。 勉強会での発表に慣れる経験をしましょう。 発表者応募が発表枠の半数に満たない場合、開催中止を検討します。 発表内容の例C++に関係するならば何を発表しても構いませんが、ネタの

そう。タイトル通りだ。筆者、江添亮はドワンゴに雇用された。一体、どのような経緯でドワンゴに入社するに至ったのか。また、どんな仕事をしているのか。それを説明するには、時系列を追って書いたほうがいいだろう。 2013年8月21日 ふとみると、以下のようなサブジェクトのメールが届いていた。 【ご相談】ドワンゴ主催のC++11, 14 に関する勉強会にスピーカーとしてご参加頂けないでしょうかC++11? C++14? なんと、日本にC++14などという単語を知っている企業があったのか。しかし・・・ドワンゴ? SPAMだろうか。いや、こんなにピンポイントなSPAMがあるわけがない。 それにしても解せないメールだ。ドワンゴといえば、もちろん、あの有名なニコニコ動画の企業だ。ニコニコ動画と言えばWebサイトだ。ニコニコ動画やその関連サービスの開発にC++を使っているのだろうか。いやまて、たしか子会社
中3女子です。 constexpr本を執筆しようと思い立った。 constexpr について、言語機能、用途、歴史的経緯、そして実装技術の観点から詳細に解説した本である。 動機C++本のうち、例えばtemplate やtemplate ライブラリについて解説した本は探せばいくらでもある。 「ModerrnC++ Design」のような古典的名著から、「C++テンプレートテクニック」のような日本人の著作まで、バイブルと呼ぶべき本が多く存在する。 偉大なプログラマ達が《発見》し発展させたテンプレートメタプログラミングといった技法を、現代のわれわれは当たり前のように学ぶことができる。 解説サイトも沢山ある。ネット上には一線級のC++ プログラマの書いた技術情報とコードが溢れている。 たとえ英語が全く使えない者でも、ネット環境と最低限の検索能力さえあれば、template に関する日本語
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
というタイトルで、先日、社内の公開セミナーで話しました。 発表資料はこちら。 Haskellのテストフレームワークとベンチマークフレームワークがよくできているので、 これをC++でも使えるんじゃないかという内容です。 概要 背景として、QuickCheck をもっと多くの人に知って/使って貰いたいというのがあります。 QuickCheckは、普段から使っている人間からすると、よくいろいろなバグを拾ってくれるとても便利なものなのですが、 残念ながら普段開発に利用しているC++には相当のもので完成度の高いものが見当たりません。 だからといって、そこから作るためにC++のテンプレートをいじくりまわすには、私はもう老いてしまいました (与えられた関数にランダムな入力を与えるだけなら簡単なのですが、ジェネレータを自由にいじれる機能がやはり欲しいところで)。 そう思った時に、FFIを使えてQuickC
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
g++でコンパイルする時に、_GLIBCXX_DEBUGというシンボルを定義しておくと、STLがデバッグモードになる。例えば以下のようにコンパイルする。 デバッグモードでコンパイルすると、誤ったSTLの使用方法をしている場所があった時、そこでプログラムがabortしてくれる。例えばhttps://gist.github.com/2427820のようなコード。copyに与えるイテレータの順序を間違っている。このプログラムを実行すると、大抵はなにも起こらず終了するが、デバッグモードでコンパイルした場合は % ./a.out/usr/include/c++/4.4/bits/stl_algobase.h:464:error: function requires a validiterator range [__first, __last).Objects involved in the
そろそろ食費にすら事欠くようになったのでバイトをすることにした。一日数時間の掃除だ。おそらく、C++本の執筆にはさほど影響しないだろう。 結局、結果からいえば、当初の目論見であった、貯金の続くうちに、全力でC++本を完成させるというのは、無理だったわけだ。やれやれ、最初から働きつつ執筆すべきだったのか。C++本は、ようやくオーバーロード演算子まで進んだ。といっても、途中のBasic Conceptsに当たる部分は飛ばしたし、コピーとムーブも飛ばした。コピーとムーブはどう書けばわかりやすくなるのか分からない。純粋なコア言語機能だけ説明してもわかりにくいし、かといって、プログラミングテクニックまで説明するのは本書の範疇ではないように思う。コア言語に絞ってさえこの分量なのだから、最初の壮大な野望通り、標準ライブラリまで手を広げようと思ったら、いつまでかかるか分からない。 そもそも、一冊のまとま
I am having some difficulty compiling aC++ program that I've written. This program is verysimple and, to the best of my knowledge, conforms to all the rules set forth in theC++ Standard. I've read over the entirety of ISO/IEC 14882:2003 twice to be sure. The program is as follows: Here is the output I received when trying to compile this program with VisualC++ 2010: c:\dev>cl /nologo helloworl
某研究室の院生の人に飲み会の席で冗談混じりに「教えて」とか言われたので、試しにやってみました。 CやJavaを学んだ+テンプレートは型Tをfloatやdoubleに置き換えて使っている程度ということだったので、まあEffectiveC++とかC++11とかテンプレートのテクニック的な話だとかでいいかと思いつつそんなスライドを書きました。 ところどころ端折ってたり、説明が足りない、間違っているがあるかも知れない。多分大丈夫。色付けはいくつか忘れている。C++11 (他) 入門 View more presentations from krustf [誤字報告] 2012/02/18 "default and deleted function" → "defaulted and deleted functions" ideoneC++0xモード便利です。本当に。 今回説明しなかったけど説
GCC 4.6に、constexprが実装された。constexprについては、特に難しいことはない。単に、関数やクラスを、コンパイル時定数にできるというだけの話である。ともかく、せっかくなので使ってみる。この機能は、細々と解説するより、実際にコードを示したほうが分かりやすいであろう。 まずは、constexprな変数である。 int main() { constexpr int a = 0 ; // OK int value = 0 ; constexpr int b = value ; // エラー const int c = value ; // OK } constexpr指定された変数は、必ずコンパイル時定数になる。変数の初期化子は、定数式でなければならない。constとの違いは、constはコンパイル時定数でなくてもよいのである。constは、初期化子が定数式の場合、定数式にな

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く