ドワンゴC++勉強会 #1に行ってきた

タイトルの通りである
ドワンゴC++勉強会 #1 - connpass

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

*1
発表者:ボレロ村上
資料:http://www.slideshare.net/GenyaMurakami/onstexprcpu*2
内容は(いつも通り)constexprについて
今回はどちらかというとC++14以降の話が増えた気がする。そして圧倒的constexpr押し

constexprはもともとコンパイル時処理と実行時処理の隔てりをなくそうという思想のもとに作られたものであったがC++11の実装であると実用上かなり厳しいものがあった
C++14ではforや一時変数等の規制が緩和されるので(ネタではなく)かなり実用的になるだろう
そして型プログラマーは新しい道具を手に入れさぞ喜ぶであろう

ただC++14でも17でもどうしても実装上の関係でconxtexprにするのが不向きな関数が出てくる
その時のために実行時とコンパイル時の実装を分けるようなis_constexprのようなコンパイラマジックによって作られた関数が必要になるという話もあった
uncaught_exceptionのような関数もあることだし私も必要だと思う

ちなみにこの発表は予定を15分から20分ほどオーバーした

The Define and Expansion of CPP Macro

発表者:でちまる氏
資料:Define and expansion of cpp macro

実はでちまる氏ではなくでちまる氏の兄という設定らしいのででちまる氏の兄氏と呼ぶのが正解である。難しいことはよくわからないが本人がそういうのだからそうなのだろう

内容はマクロ。というか魔黒
魔黒が用いられるのはTMPもconstexprも取りこぼした領域である
そして魔黒は暗黒技術であり使うべきでないと自分は認識している
使うべきではないが見ていて大変楽しい技術でもある

魔黒のちからで実質的に文字列の置換と結合しかできないマクロでループしたり足し算したりとやりたい放題するモヒカンも真っ青な発表であった
ちなみにでちまる氏、当日エクストリーム資料作成をしていたらしい。自分の記憶では発表のトップバッターはでちまる氏だった気がする。モヒカンも真っ青である

C++の歴史

発表者:江添亮

EzoeRyou/cpp-history · GitHub
の加筆版。そのうち資料も公開されるだろう。GPL
加筆と言ってもこの資料はおよそ半年前に作られたものでありそうそう大きく歴史が変わったわけではなく純粋なC++の歴史に関する話はおおむねこの資料でケリがつく

今回加筆されていたのは主に政治が絡むC++の話である
いろいろあって日本のC++委員会がこれでイインカイという状況であるという話である
詳しくはそのうち公開される資料を見てほしい


LT

templateを依存型っぽく使ってみる

発表者:南山まさかず@東京 (minamiyama1994) on Twitter
資料:#dwangocpp #1 templateを依存型っぽく使ってみる - Google スライド

依存型というのは例えば[0,100]の範囲のintger型を作ってそれ以外の値は代入できないようにしよう、とか[0,100]+[-10,10]->[-10,110]とかそういう話らしい
それをtemplateでやれないかという話
ちなみにこの発表は5分ほどで終わった気がする

constexprで使えるイディオム

発表者:抹茶ココア (fimbul11) on Twitter
資料:constexpr idioms
constexprのidiomに関する発表
自分のすごく青いコンパイラではconstexprは(完全には)使えないがこれらのテクニックはTMPでも役立つ
自分の記憶では型mapについてのときにいちばん反応があった気がする
value_atは標準入りするらしくコンパイラマジックで再起・計算量O(1)になるかもしれないみたいな話を江添さんと話していた

Cocos2dxの闇

発表者:ぽんこつ@MyFleetGirls開発中 (ponkotuy) on Twitter
資料:https://dl.dropboxusercontent.com/u/629338/pdf/Cocos2dx.pdf

正確にはcocos2dx ver2の闇
ツライというはなし。実際聞いててつらい。なにがCCobjectだ。なんて現実だ
最後にUnity(C#)とかVer3使いたいという話に
「いや、UnityC#もつらい」とか「V3もつらい」とか聞こえてきて辛い
何が正義だ*3

C++初心者書がC++11でparserを書いてみた話

発表者:かるぱねるら (karupanerura) on Twitter

曰く会場に潜り込むためにLTに申し込んだらしい。曰く8年近くC++触ってなかったらしい
チョットデキル勢じゃなかった
ちなみにLispパーサは完成しなかったらしい。そのうち完成するだろう

valgrindは実行時メモリチェッカー。これはいい。コンパイル時チェックは結局頼りにならない。メモリの悲鳴が聞こえてきそうだ

発表者:ψ(プサイ) (tikal) on Twitter
資料:
valgrindは実行時メモリチェッカー。これはいい。コンパイル時チェックは結局頼りにならない。メモリの悲鳴が聞こえてきそうだ
この時期SwiftがHotだったことが分かるタイトル
ちなみに自分はappendに関する記事(SwiftのArrayがヤバイ - Qiita)を見てswiftを見限った。言語に美しさだけを求めるならLispでもやればいいじゃない

実行時メモリチェッカーvalgrindに関する発表。嵐のような熱い発表であった
江添さんいわく最後に持ってきてよかったと
メモリリークやメモリ破壊などをチェックしてくれるツールらしい


ニコ生について

会場がドワンゴなのでニコ生を用いた配信も行われた
ちなみに自分は見ていない。会場にいたからね
途中機材が壊れたりしたらしいがよく知らない

自分の予想としては今回の参加希望者が190人ほどだったのでもしかしたら5,600人来るかなと思っていたのだが噂によると4000人以上来たらしい
が、聞いた話によると#defineって何という視聴者も多かった、とか
ニコ生にドワンゴの名が冠された放送があったので寄った人が多かったのでは?とか
そういう話を私は聞いた

確かに今回の勉強会は初学者には厳しいというか回れ右ともいえる
ちょっと日々の運動不足解消にとスポーツジムを覗いてみたら生卵飲んでるマッチョと目があった気分だ
勉強会の説明に「江添とでちまるとボレロ村上の闇の共演」と書いてある時点で闇だし
3人の発表だとconstexprがフェーズとしては一番遅いというアレだし
cocos2dxで「やったぁ!!実行時処理だ!!」って話が出るし
迷い込んでしまった人にはご愁傷様としか言いようがない
でもC++頑張ってほしい

まとめ

  • 非実行時処理は割とおなか一杯になったかもしれない
  • ニコ生は予想以上に人を集めたらしい

*1:このタイトルはAppleswift発表した際にとある人が歓喜のあまり 「Swiftの関数はHaskell風。これはいい。マシン語が透けて見える。CPUの歓声が聞こえてきそうだ 」 と歓喜した事がもとになっている。どうせあと2週間後には元ネタなんて忘れてるので一応記しておく

*2:心底どうでもいいがこのURL、constexprの最初のCが抜けている

*3:「いや、最近はよくなってきた」という話も聞いた。何が本当かは使ってないのでわからないが「Unityに幻想を抱くな」という呟きは肝に銘じておこうと思う