16進浮動小数点リテラル P0245R0 Hexadecimal floating literals for C++ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0245r0.html P0245R1 Hexadecimal floating literals for C++ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0245r1.html 10
トライグラフの削除 N3981 Removing trigraphs??! http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3981.html N4086 Removing trigraphs??! http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html N4210 IBM comment on preparing for a Trigraph-adverse future in C++17 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4210.pdf 18
テンプレートテンプレートパラメー タでtypenameを 背景 30 例 template struct A {}; template using B = int; template class X> struct C; C ca; // ok C cb; // ok, not a class template template typename X> struct D; // error, cannot use typename here
式評価順の改善 N4228 Refining Expression Evaluation Order for Idiomatic C++ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4228.pdf P0145R0 Refining Expression Evaluation Order for Idiomatic C++ (Revision 1) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0145r0.pdf P0145R1 Refining Expression Evaluation Order for Idiomatic C++ (Revision 2) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0145r1.pdf P0145R2 Refining Expression Evaluation Order for Idiomatic C++ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0145r2.pdf P0145R3 Refining Expression Evaluation Order for Idiomatic C++ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0145r3.pdf 35
式評価順の改善 導入の背景 37 次のプログラムには間違いがあります。どこでしょう? void f() { std::string s = "but I have heard it works even if you don’t believe in it"; s.replace(0, 4, "").replace(s.find("even"), 4, "only") .replace(s.find(" don’t"), 6, ""); assert(s == "I have heard it works only if you believe in it"); }
式評価順の改善 導入の背景 38 赤いところの評価順によってはassert失敗する。 void f() { std::string s = "but I have heard it works even if you don’t believe in it"; s.replace(0, 4, "").replace(s.find("even"), 4, "only") .replace(s.find(" don’t"), 6, ""); assert(s == "I have heard it works only if you believe in it"); }