タグ

C++11に関するjoint1のブックマーク (3)

  • constexpr を使うべき5の理由 - その1 - ボレロ村上 - ENiyGmaA Code

    constexpr を使うべき5の理由 「なぜあなたは constexpr を使うべきか?」 「そもそも constexpr とは何か」という基的な部分から始めて、 どうして C++er が constexpr を使わなければならないか、日にちを分けて5つのケースを書いてみます。 constexpr を既にバリバリ使っているというあなたにはまったく物足りないかもしれませんが、 改めてのおさらいということで読んでいただくのも一興かと存じます。 1.定数を明示的にコンパイル時定数にする 以下のコードは、定数 x のメンバを配列のサイズに指定している。 struct X { int n; }; int main() { const X x = {10}; int a[x.n] = {1}; } GCC 4.8 でこのコードは、以下のような警告とエラーになる。 warning: ISO C++

    constexpr を使うべき5の理由 - その1 - ボレロ村上 - ENiyGmaA Code
    joint1
    joint1 2018/05/11
    constexprである。C/C++に骨を埋める所存!!!
  • C++のムーブと完全転送を知る - Fixstars Tech Blog /proc/cpuinfo

    社内勉強会、今期(と言ってももうあと1ヶ月もないですが)は、数理最適化勉強会と、Effective Modern C++輪読会をしています。この記事は、後者のEffective Modern C++輪読会で、『Effective Modern C++』5章の一部を輪読した時の資料を流用したものです。 C++11と言えば、昔のC++(03)から色々あって多くの機能が追加されとても便利になったバージョンです。さらに、C++14は11では間に合わなかった・忘れていた色々な便利なものを補填したもので、Effective Modern C++輪読会は、『Effective Modern C++』を教科書にしながらこのC++11/14について学ぶ会になっています。 時は既に2016年、gccもclangもMSVC++も概ねC++14が使えるようになっており、もはやC++14が使えないコンパイラにはC+

    C++のムーブと完全転送を知る - Fixstars Tech Blog /proc/cpuinfo
    joint1
    joint1 2018/01/12
    なげぇ! 読まねばと思うと読むのが辛くなってくるし、、、身につけられるといいね。
  • ラムダ式の参照キャプチャは基本的に安全である - 野良C++erの雑記帳

    ラムダ式ネタをもう一つ。こっちは少々マニアックな内容です。 C++0x におけるラムダ式は、 int f( std::vector<int> const& v1, std::vector<int> const& v2 ) { int sum = 0; auto add_to_sum = [&](int x){ sum += x; }; std::for_each( v1.begin(), v1.end(), add_to_sum ); std::for_each( v2.begin(), v2.end(), add_to_sum ); return sum; } のように、ローカル変数を参照キャプチャすることが可能ですが、 一般に、ローカル変数に対する参照には、 dangling reference*1 が生じる可能性、というものが存在します: // ラムダ式とは関係ない例 std::st

    ラムダ式の参照キャプチャは基本的に安全である - 野良C++erの雑記帳
    joint1
    joint1 2017/11/28
    ラムダ式のキャプチャ、安全な場合と、未定義の場合を把握するべし。
  • 1