タグ

ブックマーク / zakkas783.tumblr.com (3)

  • 雑貨's tumblr - テンプレート・メタプログラム中で文字列を使う

    テンプレート・メタプログラム中で文字列を使う source: http://cpp-next.com/archive/2012/10/using-strings-in-c-template-metaprograms/ メタプログラミング1が大好きになる理由のなかでも、プログラムに”小さな言語”を埋めこむことができる、というのは抗い難い魅力がある。たとえば、複素数のパーサーを再帰下降パーサーを手書きするよりは、こんなふうに書きたいと思うだろう。 auto parse_complex = '(' >> double_ >> -(',' >> double_) >> ')' | double_; ほかにも、CDプレーヤーのステートマシンを手書きするかわりに、状態遷移表をこのように書きたいと思うはずだ。 auto player = Stopped + play [some_guard] / (so

  • 雑貨's tumblr - constexpr メタプログラミング:「速度が欲しいか… ならばくれてやる!」

    constexpr メタプログラミング:「速度が欲しいか… ならばくれてやる!」 source: http://cpptruths.blogspot.com/2011/07/want-speed-use-constexpr-meta.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+CppTruths+%28C%2B%2B+Truths%29&utm_content=Google+Reader 公的にC++11は二種のメタプログラミング方法を備えている。ひとつはtemplateベースで、もうひとつはconstexprである。(訳註:CPPどこいった…!) templateはC++03では広くメタプログラミングに用いられている。C++11ではもうひとつ選択肢が加わる。constexprを用いたコンパイルタイムメタプ

    craf
    craf 2011/07/25
  • 雑貨's tumblr - C++ の例外ハンドリングとパフォーマンス

    C++ の例外ハンドリングとパフォーマンス source: C++ Exception Handling and Performance | Vlad Lazarenko’s Homepage 1 序論 2 例外の使用 3 容易さ 対 速度 4 内部検査 4.1 アセンブラコードの探求 4.2 Jumping exceptions 5 どちらの例外メカニズムが利用されているかを調べる方法 6 その他のパフォーマンスについての考察 7 まとめ 8 参考文献 1 序論 例外とはプログラム実行の通常のフローではない特殊な状態に応答するための方法を提供するものである。 例外ハンドリングは通常、プログラミング言語の設計、コンピュータのハードウェアメカニズムのいずれか、もしくは両方に影響を受ける。 C++の例外メカニズムを利用することでどれほどパフォーマンスに影響を受けるか憂慮する

    craf
    craf 2011/03/27
  • 1