C++0x総復習

次期規格解禁目前!,[object Object],※この資料の末尾に簡単な補足情報をまとめていますので、,[object Object], 用語等が不明な場合などはそちらを参照してください。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object]
C++0x総復習,[object Object],Boost.勉強会 #5 名古屋 (2011-05-14 ),[object Object]
C++0x正式リリース目前!,[object Object],C++0xと呼称されてきた次期C++の国際規格(ISO/IEC 14882)も最終草案(FDIS)が作成され、いよいよ正式リリースの日が迫ってまいりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],3,[object Object]
C++0x という名の終わり,[object Object],正式リリースされればC++0xは旧名となり、そしておそらくはC++11と呼称されるようになります。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],4,[object Object]
C++0xの最新かつ最期の復習,[object Object],細かな typo の修正等を除けば原則的に正式版とほぼ同一内容(※)となるFDIS(N3290)をベースにC++0xをおさらいしましょう!,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],5,[object Object]
お断り,[object Object],FDISと正式版は原則的にほぼ同一の内容になるといは言え、その保証があるわけではなく、正式版と差異があったらごめんなさい。,[object Object],この資料でのセクション(§)およびパラグラフ(¶)の表記はその機能の主要な記述がある箇所であって、実際には他のいくつもの箇所にその機能の記述が散らばっていることが多々あります。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],6,[object Object]
§1General,[object Object],C++0x総復習,[object Object]
§1.10 Multi-threaded executions and data races,[object Object],マルチスレッド実行が言語仕様上、意識されるようになり、マルチスレッドで動作する際の挙動が定義されました。,[object Object],参考情報:,[object Object],C++0x Memory Model 第0回 - メモリモデルとは何かhttp://d.hatena.ne.jp/Cryolite/20101226#p1,[object Object],C++0x Memory Model 第1回 - 1.9 Program executionhttp://d.hatena.ne.jp/Cryolite/20101228#p1,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],8,[object Object]
§2Lexical conventions,[object Object],C++0x総復習,[object Object]
§2.3 Character sets,[object Object],ユニバーサルキャラクタ名の制限緩和,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],10,[object Object],const char16_t * str16 =,[object Object],            u"905353165E2B"; // 道化師,[object Object],const char32_t * str32 = ,[object Object],            U"000090530000531600005E2B"; // 道化師,[object Object]
§2.11 Identifiers,[object Object],処理系定義の文字を識別子として使うことが許されるようになりました。,[object Object],これにより処理系によっては日本語識別子が使えるようになります。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],11,[object Object]
§2.11 Identifiers,[object Object],特別な意味を持つ識別子が予約されました。,[object Object],override,[object Object],オーバーライド関数であることの明示。,[object Object],final,[object Object],[クラスの継承禁止]および[関数のオーバーライド禁止]。,[object Object],※特別な識別子であって予約語ではない点に注意。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],12,[object Object]
§2.12 Keywords,[object Object],予約語が増えました。,[object Object],予約語一覧(橙色が新しい予約語),[object Object],alignasalignof   asm   auto   bool   break   case   catch   char   char16_tchar32_t   class   const   const_cast   constexpr   continue   decltype   default   delete   do   double   dynamic_cast   else   enum   explicit   export   extern   false   float   for   friend   goto   if   inline   int   long   mutable   namespace   new   noexceptnullptr   operator   private   protected   public   register   reinterpret_cast   return   short   signed   sizeof   static   static_assert   static_cast   struct   switch   template   this   thread_local   throw   true   try   typedef   typeid   typename   union   unsigned   using   virtual   void   volatile   wchar_t   while,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],13,[object Object]
§2.12 Keywords,[object Object],alignas,[object Object],アライメントの指定,[object Object],alignof,[object Object],アライメントの取得,[object Object],char16_t,[object Object],UNICODE(UTF-16)用の文字型,[object Object],char32_t,[object Object],UNICODE(UTF-32)用の文字型,[object Object],constexpr,[object Object],定数式,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],14,[object Object]
§2.12 Keywords,[object Object],decltype,[object Object],式から型を取得/指定,[object Object],noexcept,[object Object],例外送出しないことの明示(指定)と判定(operator),[object Object],nullptr,[object Object],ナルポインタリテラル,[object Object],static_assert,[object Object],コンパイル時assert,[object Object],thread_local,[object Object],スレッドローカルストレージ,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],15,[object Object]
§2.14 Literals,[object Object],追加されたサフィックスとプレフィックス,[object Object],long long 型用の LLサフィックス,[object Object],cha16_t 型用の uプレフィックス,[object Object],cha32_t 型用の Uプレフィックス,[object Object],UTF-8な文字列用の u8プレフィックス,[object Object],cha16_t 型な文字列用の uプレフィックス,[object Object],cha32_t 型な文字列用の Uプレフィックス,[object Object],raw 文字列用の Rプレフィックス,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],16,[object Object]
§2.14.5 String literals,[object Object],raw文字列リテラル,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],17,[object Object],const char *p = R"(abr />b,[object Object],c)"; // == "abc",[object Object],R"a(,[object Object],)br />a",[object Object],)a" // == ")aquot;",[object Object],R"(??)" // ==  "",[object Object]
§2.14.5 String literals,[object Object],raw文字列リテラル,[object Object],詳細なかなり珍妙な仕様になっているので要注意。,[object Object],初期の提案では ( ) でなく [ ] が使われることになっていた為、Web上の多くのraw文字列リテラルに関する情報は[ ]のままになっているので注意。,[object Object],参考情報:,[object Object],http://d.hatena.ne.jp/haru-s/20081205,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],18,[object Object]
§2.14.5 String literals,[object Object],型の異なる文字列リテラルのコンパイル時の結合規則が定義されました。,[object Object],片方にエンコーディングプレフィックスがついていない場合、もう片方のエンコーディングプレフィックスに従う。,[object Object],UTF-8文字列リテラルがワイド文字列リテラルと結合するのは不適格。,[object Object],それ以外の組み合わせは処理系依存。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],19,[object Object]
§2.14.7 Pointer literals,[object Object],ポインタリテラル,[object Object],std::nullptr_t 型の nullptr,[object Object],今後は NULL より nullptrを使いましょう!,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],20,[object Object]
§2.14.8 User-Defined literals,[object Object],ユーザー定義リテラル,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],21,[object Object],long double operator ""_w(long double);,[object Object],std::string operator ""_w(const char16_t*, size_t);,[object Object],unsigned operator ""_w(const char*);,[object Object],int main() {,[object Object],1.2_w;    // calls operator "" _w(1.2L),[object Object],u"one"_w; // calls operator "" _w(u"one", 3),[object Object],12_w;     // calls operator "" _w("12"),[object Object],  "two"_w;  // error: no applicable literal operator,[object Object],},[object Object]
§2.14.8 User-Defined literals,[object Object],ユーザー定義リテラル,[object Object],日時リテラル、位置情報リテラル、2進整数リテラル等々、自由にリテラルをユーザー定義できます。,[object Object],…constexpr で十分じゃないか!という声もありますがw,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],22,[object Object]
§3Basic concepts,[object Object],C++0x総復習,[object Object]
§3.9.1 Fundamental types,[object Object],最大の整数型として long long int型が導入されました。,[object Object],例によって規格上は最大の整数型としか定義されておらず何バイト(何ビット)の値なのかは処理系定義となります。,[object Object],short intや long intと同様に signed/unsigned  修飾したり int を省略したりできます。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],24,[object Object]
§3.10 Lvalues and rvalues,[object Object],右辺値/左辺値の定義がより詳細になりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],25,[object Object],式,[object Object],expression,[object Object],※便宜上の訳語で正式な訳語でも一般的な訳語でもありません。,[object Object],汎左辺値※,[object Object],glvalue,[object Object],右辺値,[object Object],rvalue,[object Object],左辺値,[object Object],lvalue,[object Object],純右辺値※,[object Object],prvalue,[object Object],末期値※,[object Object],xvalue,[object Object]
§3.10 Lvalues and rvalues,[object Object],左辺値 lvalue ( “left-hand” value ),[object Object],関数あるいはオブジェクト。,[object Object],末期値 xvalue ( “eXpiring” value ),[object Object],生存期間の終了するオブジェクトの参照。,[object Object],右辺値参照の結果。,[object Object],汎左辺値 glvalue ( “generalized” lvalue ),[object Object],左辺値(lvalue)あるいは末期値(xvalue)。,[object Object],右辺値 rvalue ( “right-hand” value ),[object Object],末期値(xvalue)、一時オブジェクトあるいはそのサブオブジェクト、オブジェクトに関連づいていない値。,[object Object],純右辺値 prvalue ( “pure” rvalue ),[object Object],末期値(xvalue)でない右辺値(rvalue)。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],26,[object Object]
§3.11 Alignment,[object Object],アライメントがより詳細に定義されました。,[object Object],処理系がサポートする最大のアライメント: alignof(std::max_align_t),[object Object],アライメントは std::size_t 型の値で示される。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],27,[object Object]
§4Standard conversions,[object Object],C++0x総復習,[object Object]
§4Standard conversions,[object Object],主に右辺値/左辺値、char16_t/char32_t、std::nullptr_t、unscoped enumeration 型に関連した trivial な修正。,[object Object],std::nullptr_t 型の値をboolに変換した場合はfalseになる。(§4.12),[object Object],Integer conversion rankの定義(§4.13),[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],29,[object Object]
§5Expressions,[object Object],C++0x総復習,[object Object]
§5.1.2 Lambda expressions,[object Object],ラムダ式が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],31,[object Object],#include <algorithm>,[object Object],#include <cmath>,[object Object],void abssort(float *x, unsigned N) {,[object Object],  std::sort(x, x + N,,[object Object],[](float a, float b) {,[object Object],      return std::abs(a) < std::abs(b);,[object Object],});,[object Object],},[object Object]
§5.1.2 Lambda expressions,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],32,[object Object],int a = 42;,[object Object],auto b = [a](){ return a; }; // b 内の a はコピー,[object Object],auto c = [=](){ return a; }; // b と等価,[object Object],int d = b(); // -> 42,[object Object],int e = [a](int x){ return a +x; }(d); // そのまま呼び出し,[object Object],auto f = [&a](){ return a; }; // b と違い f 内の a は参照,[object Object],auto g = [&](){ return a; }; // f と等価,[object Object],a = 24;,[object Object],int h = b(); // -> 42,[object Object],int i = f(); // -> 24 ,[object Object],auto j = [a,&d](int x){ return a +d +x; };,[object Object],auto k = [=,&d](int x){return a +d +x; }; // j と等価,[object Object],auto l = [&]()->int{return a; }; // g と等価(戻り型の明示),[object Object]
§5.3.6 Alignof,[object Object],型からアライメントを取得できる alignof が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],33,[object Object],std::size_t int_alignment = alignof(int);,[object Object]
§5.3.7 noexcept operator,[object Object],式が例外を送出し得るかどうかを取得できる noexcept operator が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],34,[object Object],bool is_noexcept_expr = noexcept(a.swap(b));,[object Object]
§5.19 Constant expressions,[object Object],constexpr が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],35,[object Object],constexpr const int* addr(const int& ir) { return &ir; } // OK,[object Object],static const int x = 5;,[object Object],constexpr const int* xp = addr(x); // OK: (const int*)&(const int&)x is an,[object Object],                                   // address constant expression,[object Object],constexpr const int* tp = addr(5); // error, initializer for constexpr variable not a constant,[object Object],                                   // expression; (const int*)&(const int&)5 is not a constant,[object Object],                                   // expression because it takes the address of a temporary,[object Object]
§5.19 Constant expressions,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],36,[object Object],int x;                        // not constant,[object Object],struct A {,[object Object],constexpr A(bool b) : m(b?42:x) { },[object Object],  int m;,[object Object],};,[object Object],constexpr int v = A(true).m;  // OK: constructor call initializes,[object Object],                              // m with the value 42 after substitution,[object Object],constexpr int w = A(false).m; // error: initializer for m is,[object Object],                              // x, which is non-constant,[object Object]
§6Statements,[object Object],C++0x総復習,[object Object]
§6.5.4 The range-based for statement,[object Object],範囲ベースfor文が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],38,[object Object],int array[5] = { 1, 2, 3, 4, 5 };,[object Object],for(int& x : array),[object Object],x *= 2;,[object Object]
§6.7 Declaration statement ¶4,[object Object],マルチスレッド実行時のグローバル変数およびstatic変数の初期化ルールが定義され、ユーザーコーディングによる初期化の排他処理は不要になりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],39,[object Object]
§7Declarations,[object Object],C++0x総復習,[object Object]
§7 Declarations¶4,[object Object],static_assert が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],41,[object Object],static_assert(sizeof(long) >= 8,,[object Object],"64-bit code generation required for this library.");,[object Object]
§7.1.1 Storage class specifiers,[object Object],記憶域種別指定子としての autoが削除されました。,[object Object],型推論の機能として使う為。,[object Object],概念としての§3.7.3 Automatic storage duration が無くなったわけではないので注意。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],42,[object Object]
§7.1.1 Storage class specifiers,[object Object],記憶域種別指定子としての thread_localが導入されました。,[object Object],この記憶域種が指定された変数はスレッドローカルストレージに格納される値となり、スレッド別に固有の値を持つことができます。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],43,[object Object]
§7.1.6.2 Simple type specifiers,[object Object],式から型を指定できるdecltypeが導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],44,[object Object],const int&& foo();,[object Object],int i;,[object Object],struct A { double x; };,[object Object],const A* a = new A();,[object Object],decltype(foo()) x1 = i;   // type is const int&&,[object Object],decltype(i) x2;           // type is int,[object Object],decltype(a->x) x3;        // type is double,[object Object],decltype((a->x)) x4 = x3; // type is const double&,[object Object]
§7.1.6.4 auto specifier,[object Object],型を推論してくれるauto型識別子が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],45,[object Object],auto x = 5;                // OK: x has type int,[object Object],const auto *v = &x, u = 6; // OK: v has type const int*, u has type const int,[object Object],static auto y = 0.0;       // OK: y has type double,[object Object],auto int r;                // error: auto is not a storage-class-specifier,[object Object]
§7.2 Enumeration declarations,[object Object],正式に最後の列挙子の末尾にカンマをつけてもいいことになりました。,[object Object],C++03の規格上は許されてなかったようです。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],46,[object Object],enum number {,[object Object], zero,,[object Object], one,,[object Object], two, // ←このカンマ,[object Object],};,[object Object]
§7.2 Enumeration declarations,[object Object],scoped enumeration が導入され従来の enum は unscoped enumeration と呼ばれるようになりました。,[object Object],名前の通り、 scoped enumeration はスコープを持ち列挙子はそのscoped enumeration 型のスコープに所属し、名前空間を汚しません。,[object Object],int 固定だった enum の内部表現型に任意の整数型を指定できるようになりました。,[object Object],enum先行宣言ができるようになりました。,[object Object],この場合、内部表現型の指定は必須となる。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],47,[object Object]
§7.2 Enumeration declarations,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],48,[object Object],// unscoped enumeration,[object Object],enum color { red, yellow, green=20, blue };,[object Object],// scoped enumeration,[object Object],enumclassscoped_color { red, yellow, green=20, blue };,[object Object],// opaque-enum-declaration,[object Object],enumcolor_byte:unsigned char;,[object Object],// base type is unsigned char,[object Object],enumcolor_byte:unsigned char { red, yellow, green=20, blue };,[object Object]
§7.2 Enumeration declarations,[object Object],scoped enumerationの値と整数値は比較できません。,[object Object],scoped enumeration の値を整数型の変数に代入することは可能です。,[object Object],scoped enumeration の変数に整数値を代入することできません。,[object Object],異なる scoped enumeration 型の値を比較、代入等をすることはできません。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],49,[object Object]
§7.3.1 Namespace definition,[object Object],inline namespace が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],50,[object Object],namespace a {,[object Object],inline namespace b {,[object Object],   int c;,[object Object], },[object Object],},[object Object],int d = a::b::c;,[object Object],int e = a::c;,[object Object]
§7.6 Attributes,[object Object],属性が導入されました。,[object Object],alignas,[object Object],noreturn,[object Object],carries_dependency,[object Object],他処理系定義,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],51,[object Object]
§7.6.2 Alignment specifier,[object Object],alignas,[object Object],アライメントの指定。,[object Object],指定はバイト数あるいは型名で行う。,[object Object],これだけ他の属性とは別格で [[ ]] で囲まない。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],52,[object Object],alignas(4) unsigned char p[sizeof(void*)];,[object Object],alignas(double) unsigned char c[sizeof(double)];,[object Object],// array of characters, suitably aligned for a double,[object Object]
§7.6.3 Noreturn attribute,[object Object],noreturn,[object Object],関数が絶対にreturn しないことの明示。,[object Object],コンパイラの最適化を助ける為の指定。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],53,[object Object],[[ noreturn ]] void f() {,[object Object],throw "error"; // OK,[object Object],},[object Object]
§7.6.4 Carries dependency attribute,[object Object],carries_dependency,[object Object],依存を関数の内外へ伝播させる指定。,[object Object],Data-Dependency Orderingを利用する場合などに使う。,[object Object],参考情報:,[object Object],C++0x時代の Double-Checked Lockinghttp://d.hatena.ne.jp/bsdhouse/20100128/1264693781,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],54,[object Object]
§8Declarators,[object Object],C++0x総復習,[object Object]
§8.3.2 References,[object Object],右辺値参照が導入され、従来の参照は左辺値参照と呼ばれるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],56,[object Object],class hoge {,[object Object],    std::unique_ptr<hige> p_value;,[object Object],  public:,[object Object],hoge(const hige & a) :p_value(new hige(a)) { },[object Object],hoge(const hoge & a) :p_value(new hige(*a.p_value)) { },[object Object],hoge(hoge&& a) {,[object Object],      std::swap(p_value, a.p_value);// コピーせずに奪う。,[object Object],    },[object Object],};,[object Object]
§8.3.5 Functions,[object Object],関数の戻り型を後置できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],57,[object Object],typedef int IFUNC(int);,[object Object],IFUNC* fpif(int);,[object Object],↑が↓のように記述できる。,[object Object],autofpif(int)->int(*)(int);,[object Object]
§8.4.1 In general¶8,[object Object],関数名を示す定義済み変数 __func__が導入されました。,[object Object],関数ローカルの次ようなイメージの定義済み変数として提供されます。,[object Object],組み込みマクロではなくあくまで変数として提供され、また関数名は処理系定義の文字列となります。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],58,[object Object],static const char __func__[] = "function-name";,[object Object]
§8.4.2 Explicitly-defaulted functions,[object Object],クラスのコンストラクタ/デストラクタや operator のdefault 実装を明示的に要求できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],59,[object Object],class hoge {,[object Object],public:,[object Object],hoge(const hoge & a)= default;,[object Object],},[object Object]
§8.4.2 Explicitly-defaulted functions,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],60,[object Object],外でも指定可。,[object Object],class hoge {,[object Object],public:,[object Object],hoge(const hoge & a);,[object Object],};,[object Object],hoge::hoge(const hoge & a) = default;,[object Object]
§8.4.3 Deleted definitions,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],61,[object Object],クラスのコンストラクタ/デスクトラクタや operator のdefault 実装を拒否できるようになりました。,[object Object],class hoge {,[object Object],public:,[object Object],hoge(const hoge & a)= delete;,[object Object],},[object Object]
§8.5 Initializers¶15,[object Object],初期化の構文中で ( ) の代わりに { } も使えるようになりました。,[object Object],関連:§15.1, §15.3, §8.5.1, §12.8,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],62,[object Object],class hoge {,[object Object],  int value;,[object Object],public:,[object Object],  hoge(int a_value) :value {a_value} { },[object Object],};,[object Object],hoge x{1};,[object Object],auto y = new hoge {1};,[object Object],hoge f(int a) { return {a}; },[object Object]
§8.5.4 List-initialization,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],63,[object Object],初期化リストが導入されました。,[object Object],int a = {1};,[object Object],std::complex<double> z{1,2};,[object Object],new std::vector<std::string>{"once", "upon", "a", "time"}; // 4 string elements,[object Object],f({"Nicholas","Annemarie"} ); // pass list of two elements,[object Object],return {"Norah" };            // return list of one element,[object Object],int* e {};                     // initialization to zero / null pointer,[object Object],x = double{1};                 // explicitly construct a double,[object Object],std::map<std::string,int> anim = {{"bear",4},{"cassowary",2},{"tiger",7}};,[object Object]
§8.5.4 List-initialization,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],64,[object Object],コンストラクタは初期化リストを std::initilizer_list<E>型の値として受け取ることが可能です(§13.3.1.7) 。,[object Object],std::initilizer_listクラステンプレートを利用するには <initializer_list> を include しておく必要があります。,[object Object],初期化リスト内で narrowing conversion が発生する場合はエラーとなります。,[object Object],関連:§4.13 Integer conversion rank,[object Object]
§9Classes,[object Object],C++0x総復習,[object Object]
§9 Classes ¶3,[object Object],class を final 指定することで継承を禁止できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],66,[object Object],class final hoge { ... };,[object Object],class hige: hoge { ... }; // error,[object Object]
§9.5 Unions,[object Object],union がメンバー関数(コンストラクタ/デストラクタも含む)を持てるようになりました。,[object Object],ただし、普通のクラスのように継承したりされたりといったことは今まで通りできません。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],67,[object Object]
§9.5 Unions,[object Object],union のメンバーにコンストラクタ/デストラクタを持つようなクラスを含ませることも可能になりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],68,[object Object],union U {,[object Object],  int i;,[object Object],  float f;,[object Object],  std::string s;,[object Object],};,[object Object]
§9.5 Unions,[object Object],ただし、それらのコントラクタ/デストラクタは自動では呼び出されないので、適切に配置構文 new および明示的なデストラクタの呼び出しを行うことが必要になります。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],69,[object Object]
§9.5 Unions,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],70,[object Object],union U {,[object Object],  int i;,[object Object],  float f;,[object Object],  std::string s;,[object Object],  U() {,[object Object],    new (&s) s();,[object Object],  },[object Object],  ~U() {,[object Object],s.~string();,[object Object],  },[object Object],};,[object Object]
§10Derived classes,[object Object],C++0x総復習,[object Object]
§10.3 Virtual functions ¶4,[object Object],仮想関数に final を指定することで継承先のクラスでその仮想関数のオーバーライドを禁止できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],72,[object Object],struct B {,[object Object],  virtual void f() const final;,[object Object],};,[object Object],struct D : B {,[object Object],  void f() const; // error: D::f attempts to override final B::f,[object Object],};,[object Object]
§10.3 Virtual functions ¶5,[object Object],仮想関数に override を指定することでオーバーライドであること明示できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],73,[object Object],struct B {,[object Object],  virtual void f(int);,[object Object],};,[object Object],struct D : B {,[object Object],  void f(long) override; // error: wrong signature overriding B::f,[object Object],  void f(int) override; // OK,[object Object],};,[object Object]
§11Member access control,[object Object],C++0x総復習,[object Object]
§11Member access control,[object Object],trivial な修正が多数。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],75,[object Object]
§12Special member functions,[object Object],C++0x総復習,[object Object]
§12.3.2 Conversion functions ¶2,[object Object],変換関数にも explicit が指定できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],77,[object Object],class Y { };,[object Object],struct Z {,[object Object],explicit operator Y() const;,[object Object],};,[object Object],void h(Z z) {,[object Object],  Y y1(z);     // OK: direct-initialization,[object Object],  Y y2 = z;    // ill-formed: copy-initialization,[object Object],  Y y3 = (Y)z; // OK: cast notation,[object Object],},[object Object]
§12.6.2 Initializing bases and members,[object Object],委譲コンストラクタ(delegating constructor)が導入され、コンストラクタから同じクラスの別のコンストラクタが利用できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],78,[object Object]
§12.6.2 Initializing bases and members,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],79,[object Object],struct C {,[object Object],  C( int ) { }               // #1: non-delegating constructor,[object Object],  C(): C(42) { }             // #2: delegates to #1,[object Object],  C( char c ) : C(42.0) { }  // #3: ill-formed due to recursion with #4,[object Object],  C( double d ) : C('a'){ } // #4: ill-formed due to recursion with #3,[object Object],  C( long ) { C(42); }       // #5: not delegation, temporarily object,[object Object],};,[object Object]
§12.6.2 Initializing bases and members,[object Object],クラス定義内でデータメンバーの初期値を指定できるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],80,[object Object],struct A {,[object Object],  int b =42;,[object Object],  std::string c("truth");,[object Object],A() { },[object Object],};,[object Object]
§12.6.2 Initializing bases and members,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],81,[object Object],struct A {,[object Object],  int b = std::printf("hoge");,[object Object],  A() { }            // std::printf("hoge")が実行され、,[object Object],// その戻り値が b に格納される。,[object Object],A(int x) :b(x) { } // std::printf("hoge") は実行されず、,[object Object],// x が b に格納される。,[object Object],};,[object Object]
§12.8 Copying and moving class objects,[object Object],同型の右辺値参照(≒同型の一時オブジェクト)を引数とするムーブコンストラクタが定義されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],82,[object Object]
§12.8 Copying and moving class objects,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],83,[object Object],struct Y {,[object Object],  Y(const Y&);,[object Object],Y(Y&&);,[object Object],};,[object Object],extern Y f(int);,[object Object],Y d(f(1)); // calls Y(Y&&),[object Object],Y e = d;   // calls Y(const Y&),[object Object]
§12.9 Inheriting constructors,[object Object],継承コンストラクタが導入され、継承元のコンストラクタを継承先で引き継げるようになりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],84,[object Object]
§12.9 Inheriting constructors,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],85,[object Object],struct B1 {,[object Object],  B1(int);,[object Object],};,[object Object],struct D1 : B1 {,[object Object],using B1::B1;,[object Object],};,[object Object],D1 x(42);,[object Object]
§13Overloading,[object Object],C++0x総復習,[object Object]
§13Overloading,[object Object],trivial な(ry,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],87,[object Object]
§14Templates,[object Object],C++0x総復習,[object Object]
§14.2 Names of template specializations,[object Object],クラステンプレートをネストした際の閉じ山括弧をスペースでセパレートしなくてよくなりました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],89,[object Object],template<int i> class X { /* ... */ };,[object Object],template<class T> class Y { /* ... */ };,[object Object],Y<X<1>> x3;      // OK, same as Y<X<1> > x3;,[object Object],Y<X<6>>1>> x4;   // syntax error,[object Object],Y<X<(6>>1)>> x5; // OK,[object Object]
§14.3.1 Template type arguments,[object Object],ローカルクラスをテンプレート引数に利用できないとする制限が削除されました。,[object Object],ただし、§14.5.2 Member templates ¶2 のローカルクラスではメンバーテンプレートを持てないとする記述(A local class shall not have member template.)は残っているままなので注意。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],90,[object Object]
§14.3.1 Template type arguments,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],91,[object Object],template <class T> class X { /* ... */ };,[object Object],void f(),[object Object],{,[object Object],  struct S { /* ... */ };,[object Object],  X<S> x3;  // C++03 ではエラー,[object Object],X<S*> x4; // C++03 ではエラー,[object Object],},[object Object]
§14.5.3 Variadic templates,[object Object],可変長template引数が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],92,[object Object],template<class ... Types> struct Tuple { };,[object Object],Tuple<> t0;           // Types contains no arguments,[object Object],Tuple<int> t1;        // Types contains one argument: int,[object Object],Tuple<int, float> t2; // Types contains two arguments: int and float,[object Object],Tuple<0> error;       // error: 0 is not a type,[object Object],template<class ... Types> void f(Types ... rest);,[object Object],template<class ...Types> void g(Types ... rest) {,[object Object],  f(&rest ...); // “&rest ...” is a pack expansion; “&rest” is its pattern,[object Object],},[object Object]
§14.5.3 Variadic templates,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],93,[object Object],template<typename...> struct Tuple {};,[object Object],template<typename T1, typename T2> struct Pair {};,[object Object],template<class ...Args1> struct zip {,[object Object],  template<class ...Args2> struct with {,[object Object],    typedef Tuple<Pair<Args1, Args2> ...> type;,[object Object],  };,[object Object],};,[object Object],typedef zip<short, int>::with<unsigned short, unsigned>::type T1;,[object Object],    // T1 is Tuple<Pair<short, unsigned short>, Pair<int, unsigned>>,[object Object],typedef zip<short>::with<unsigned short, unsigned>::type T2;,[object Object],    // error: different number of arguments specified for Args1 and Args2,[object Object],template<class ...Args>,[object Object],  void g(Args ...args) {                 // OK: Args is expanded by the function parameter pack args,[object Object],    f(const_cast<const Args*>(&args)...); // OK: “Args” and “args” are expanded,[object Object],    f(5 ...);                             // error: pattern does not contain any parameter packs,[object Object],    f(args);                              // error: parameter pack “args” is not expanded,[object Object],    f(h(args ...) + args ...);            // OK: first “args” expanded within h, second,[object Object],                                          // “args” expanded within f,[object Object],  },[object Object]
§14.5.3 Variadic templates,[object Object],template引数の数の取得には sizeof … を使用する。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],94,[object Object],template<class ... Types> struct Tuple {,[object Object],  static int size = sizeof ... (Types);,[object Object],};,[object Object]
§14.5.3 Variadic templates,[object Object],可変長template引数の最初の引数を取得するといった手段は直接的には提供されていない為、必要に応じて次のようなテクニックを使う。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],95,[object Object],template<class First, class ...Trail> struct GetFirst {,[object Object], typedef First Type;,[object Object],};,[object Object],template<class ... Types> struct Tuple {,[object Object],  typedef typename GetFirst<Types ...>::Type FirstType;,[object Object],};,[object Object]
§14.5.7 Alias templates,[object Object],別名templateが導入されました。,[object Object],指定には using キーワードを使用する。,[object Object],別名はあくまで別名でしかない為、タイプマッチング等ではオリジナルのtemplateを直接使用したのと同じように処理されるので注意。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],96,[object Object]
§14.5.7 Alias templates,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],97,[object Object],template<class T> struct Alloc { / ... / };,[object Object],template<class T> usingVec = vector<T, Alloc<T>>;,[object Object],Vec<int> v; // same as vector<int, Alloc<int>> v;,[object Object],template<class T>,[object Object],  void process(Vec<T>& v) { / ... / },[object Object],template<class T>,[object Object],  void process(vector<T, Alloc<T>>& w) { / ... / } // error: redefinition,[object Object],template<template<class> class TT> void f(TT<int>);,[object Object],f(v); // error: Vec not deduced,[object Object],template<template<class,class> class TT> void g(TT<int, Alloc<int>>);,[object Object],g(v); // OK: TT = vector,[object Object]
§14.7.2 Explicit instantiation,[object Object],自動インスタンス化を防ぐ明示的インスタンス化宣言が導入されました。,[object Object],参考情報:,[object Object],http://msdn.microsoft.com/en-us/library/by56e477.aspx( Microsoft Specific の部分が C++0x の仕様として採用されたっぽいです。 ),[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],98,[object Object],extern template class MyStack<int, 6>;,[object Object]
§15Exception handling,[object Object],C++0x総復習,[object Object]
15.1 Throwing an exception,[object Object],throw された例外オブジェクト(のコピー)の寿命がstd::exception_ptrで参照されている場合、参照が無くなるまで延命されました。,[object Object],throw できる例外オブジェクトの要件である「コピーコンストラクタを持っていてデストラクタにアクセス可能であること」が「コピーコンストラクタあるいはムーブコンストラクタを持っていてデストラクタにアクセス可能であること」に修正されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],100,[object Object]
§15.4 Exception specifications,[object Object],例外仕様に例外を投げないこと明示する noexcept が追加され、従来の例外仕様は動的例外仕様と呼ばれるようになりました。,[object Object],参考情報:,[object Object],本の虫: ややこしいnoexcepthttp://cpplover.blogspot.com/2010/10/noexcept.html,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],101,[object Object],void f() noexcept ; // noexcept(true)と同じ,[object Object],void g() noexcept(true) ; // 例外を投げない,[object Object],void h() noexcept(false) ; // 例外を投げる,[object Object]
§16Preprocessing directives,[object Object],C++0x総復習,[object Object]
§16.3 Macro replacement ¶5,[object Object],可変長マクロ引数を扱う為の __VA_ARGS__が導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],103,[object Object],#if define(NDEBUG),[object Object],#deine DEBUG_printf(...) printf(__VA_ARGS__),[object Object],#else,[object Object],#deine DEBUG_printf(...) ((void)0),[object Object],#endif,[object Object]
§16.8 Predefined macro names,[object Object],__cplusplusマクロの指し示す値が 199711L から201103L に変わります。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],104,[object Object]
§16.8 Predefined macro names,[object Object],次の組み込みが追加されました。,[object Object],__STDC_HOSTED__,[object Object],__STDC_MB_MIGHT_NEQ_WC__,[object Object],__STDC_VERSION__,[object Object],__STDC_ISO_10646__,[object Object],__STDCPP_STRICT_POINTER_SAFETY__,[object Object],__STDCPP_THREADS__,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],105,[object Object]
§16.8 Predefined macro names,[object Object],__STDC_HOSTED__,[object Object],ホスト処理系(標準に準拠した処理系)である場合に1。そうでなければ0。,[object Object],__STDC_MB_MIGHT_NEQ_WC__,[object Object],'a' == L'a' が成立しない場合に1。,[object Object],__STDC_VERSION__,[object Object],処理系定義の値で、C99 に準拠している場合には 199901L となることが期待されます。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],106,[object Object]
§16.8 Predefined macro names,[object Object],__STDC_ISO_10646__,[object Object],wchar_t に格納される文字コードが ISO/IEC 10646 (UNICODE) に準拠している場合に定義され、その値は準拠しているISO/IEC 10646のバージョンに合わせて yyyymmLの書式で 199712L などのように定義される。,[object Object],__STDCPP_STRICT_POINTER_SAFETY__,[object Object],処理系が strict pointer safety を持つ場合に1として定義されます。(そうでない場合、処理系は relaxed pointer safety を持つ),[object Object],__STDCPP_THREADS__,[object Object],マルチスレッド実行が可能な場合に1として定義されます。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],107,[object Object]
§16.9 Pragma operator,[object Object],_Pragma オペレーターが導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],108,[object Object],#define LISTING(x) PRAGMA(listing on #x),[object Object],#define PRAGMA(x) _Pragma(#x),[object Object],LISTING( ..isting.dir ),[object Object],// #pragma listing on "..isting.dir" と等価,[object Object]
§17Library introduction,[object Object],C++0x総復習,[object Object]
§17.6.4.2.2 Namespace posix,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],110,[object Object],ISO/IEC 9945 およびその他のPOSIXの為に  namespace posixが予約されました。,[object Object]
§17.6.4.3.5 User-defined literal suffixes,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],111,[object Object],アンダースコアで始まらないユーザー定義リテラルサフィックスが将来の標準の為に予約されました。,[object Object],->ユーザーコーディングでユーザー定義リテラルを使う場合、サフィックスはアンダースコアで始めること。で、且つアンダースコアで始まるグローバルな名前は§17.6.4.3.2で予約されてるので、ユーザー定義リテラルをグローバルな名前空間で使うのは禁止。(´Д`;,[object Object]
§18Language support library,[object Object],C++0x総復習,[object Object]
§18.2 Types,[object Object],次の型が <cstddef> ヘッダーに追加されました。,[object Object],std::max_align_t,[object Object],処理系がサポートする最大のアライメントを持つ型,[object Object],std::nullptr_t,[object Object],nullptr リテラルの型,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],113,[object Object]
§18.4 Integer types,[object Object],<cstdint>ヘッダが導入されました。次の型がstd 名前空間で提供されます。,[object Object],int8_t int16_t int32_t int64_t int_fast8_t int_fast16_t int_fast32_t int_fast64_t int_least8_t int_least16_t int_least32_t int_least64_t intmax_tintptr_t uint8_t uint16_t uint32_t uint64_t uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t uint_least8_t uint_least16_t uint_least32_t uint_least64_t uintmax_tuintptr_t,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],114,[object Object]
§18.5 Start and termination,[object Object],<cstdlib> から利用できる次の関数が追加れました。,[object Object],[[noreturn]] void _Exit(int status) noexcept;,[object Object],各種オブジェクトのデストラクタすら呼び出さずに即プログラムを終了させる。,[object Object],extern "C" int at_quick_exit(void (*f)(void)) noexcept;,[object Object],extern "C++" int at_quick_exit(void (*f)(void)) noexcept;,[object Object],quick_exit() から呼び出される関数を登録します。,[object Object],処理系は少なくとも32個の関数を登録できるようにすることが推奨されます。,[object Object],[[noreturn]] void quick_exit(int status) noexcept;,[object Object],at_quick_exit() で登録された関数を全て呼び出した後に _Exit() を呼び出します。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],115,[object Object]
§18.6.2.5 get_new_handler,[object Object],set_new_handler() でセットしたハンドラを取得できる次の関数が追加されました。,[object Object],new_handlerget_new_handler() noexcept;,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],116,[object Object]
§18.7.1 Class type_info,[object Object],type_infoクラスに次のメンバー関数が追加されました。,[object Object],size_t hash_code() const noexcept;,[object Object],a == b なら a.hash_code() == b.hash_code() で a != b なら a.hash_code() != b.hash_code() な値を返します。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],117,[object Object]
§18.8 Exception handling,[object Object],<exception>ヘッダに次のクラスとそれに関連する関数が追加されました。,[object Object],exception_ptrクラス,[object Object],nested_exceptionクラス,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],118,[object Object]
§18.8 Exception handling,[object Object],exception_ptr クラス,[object Object],例外オブジェクトに対するスマートポインタで、catch 句を抜けた後でもこのexception_ptrにより例外オブジェクトを保持できます。,[object Object],exception_ptrに関連する関数,[object Object],exception_ptrcurrent_exception() noexcept;,[object Object],現在 throw されてる例外オブジェクトを保持する exception_ptrを取得する。,[object Object],[[noreturn]] void rethrow_exception(exception_ptr p);,[object Object],引数で渡された exception_ptrが保持している例外オブジェクトを再送出する。,[object Object],template<class E> exception_ptrmake_exception_ptr(E e) noexcept;,[object Object],引数で渡されたオブジェクトを保持する exception_ptrを返す。,[object Object],エラーハンドリング Boost.勉強会 #3 関西,[object Object],119,[object Object]
nested_exceptionクラス,[object Object],ネストされた例外オブジェクト,[object Object],メンバー関数抜粋,[object Object],[[noreturn]] void rethrow_nested() const;,[object Object],ネストの内側の例外オブジェクトを再送出。,[object Object],exception_ptrnested_ptr() const noexcept;,[object Object],ネストの内側の例外オブジェクトを保持する exception_ptrを返す。,[object Object],nested_exceptionクラスに関連する関数,[object Object],[[noreturn]] template <class T> void throw_with_nested(T&& t);,[object Object],引数で渡されたオブジェクトがnested_exceptionを継承している場合はそのまま、されていない場合は元の型とnested_exceptionの両方を継承している型で例外を送出する。,[object Object],template <class E> void rethrow_if_nested(const E& e);,[object Object],引数で渡されたオブジェクトがpublicにnested_exceptionを継承している場合にのみそのrethrow_nested()を呼び出します。,[object Object],エラーハンドリング Boost.勉強会 #3 関西,[object Object],120,[object Object]
§18.8 Exception handling,[object Object],set_unexpected() のget側である次の関数も追加されました。,[object Object],terminate_handlerget_terminate() noexcept;,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],121,[object Object]
§18.9 Initializer lists,[object Object],std::initializer_listクラステンンプレートが定義されている <initializer_list>ヘッダが追加されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],122,[object Object]
§18.9 Initializer lists,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],123,[object Object],namespace std {,[object Object],  template<class E> class initializer_list {,[object Object],  public:,[object Object],    typedef E value_type;,[object Object],    typedef const E& reference;,[object Object],    typedef const E& const_reference;,[object Object],    typedef size_t size_type;,[object Object],    typedef const E* iterator;,[object Object],    typedef const E* const_iterator;,[object Object],    initializer_list() noexcept;,[object Object],    size_t size() const noexcept; // number of elements,[object Object],    const E* begin() const noexcept; // first element,[object Object],    const E* end() const noexcept; // one past the last element,[object Object],  };,[object Object],// 18.9.3 initializer list range access,[object Object],  template<class E> const E* begin(initializer_list<E> il) noexcept;,[object Object],  template<class E> const E* end(initializer_list<E> il) noexcept;,[object Object],},[object Object]
§19Diagnostics library,[object Object],C++0x総復習,[object Object]
§19.4 Error numbers,[object Object],<cerrno>ヘッダで定義される変数が大幅に増えました。,[object Object],ECONNREFUSED E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED EIO ECONNRESET EDEADLK EDESTADDRREQ EDOM EEXIST EFAULT EFBIG EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL ENODEV EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENOTEMPTY ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTCONN ENOTDIR ERANGE ENOTRECOVERABLE ENOTSOCK ENOTSUP ENOTTY ENXIO EOPNOTSUPP EOVERFLOW EOWNERDEAD EPERM EPIPE EPROTO EPROTONOSUPPORT EPROTOTYPE EROFS ESPIPE ESRCH ETIME ETIMEDOUT ETXTBSY EWOULDBLOCK EXDEVerrno,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],125,[object Object]
§19.5 System error support,[object Object],OSあるいはその他基本ソフトウェアのネイティブのエラーコードをサポートするためのライブラリが導入されました。ヘッダは<system_error>。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],126,[object Object]
§19.5 System error support,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],127,[object Object],namespace std {,[object Object],  class error_category;,[object Object],  class error_code;,[object Object],  class error_condition;,[object Object],  class system_error;,[object Object],  template <class T>,[object Object],  struct is_error_code_enum : public false_type {};,[object Object],  template <class T>,[object Object],  struct is_error_condition_enum : public false_type {};,[object Object],  enum class errc {,[object Object],    ...,[object Object],  };,[object Object],  template <> struct is_error_condition_enum<errc> : true_type { },[object Object],  error_code make_error_code(errc e) noexcept;,[object Object],  error_condition make_error_condition(errc e) noexcept;,[object Object],  // 19.5.4 Comparison operators:,[object Object],...,[object Object],} // namespace std,[object Object]
§20General utilities library,[object Object],C++0x総復習,[object Object]
§20.7 Smart pointers,[object Object],<memory>ヘッダに次のスマートポインタが導入されました。,[object Object],unique_ptr(§20.7.1),[object Object],auto_ptrの改善版。,[object Object],shared_ptr(§20.7.2.2),[object Object],所有を共有するスマートポインタ。,[object Object],weak_ptr(§20.7.2.3),[object Object],循環参照問題を回避する為のスマートポインタ。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],129,[object Object]
§20General utilities library,[object Object],他にも tuple だの ratio だの chronoだのいろいろ追加されます。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],130,[object Object]
§21Strings library,[object Object],C++0x総復習,[object Object]
§21 Strings library,[object Object],char16_t, char32_t に合わせて、 u16string, u32string 等々が追加されいます。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],132,[object Object]
§22Localization library,[object Object],C++0x総復習,[object Object]
§22.5 Standard code conversion facets,[object Object],文字エンコーディング変換の為の <codecvt>ヘッダが追加されています。,[object Object],->あんまり期待はできなさそう。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],134,[object Object]
§23Containers library ,[object Object],C++0x総復習,[object Object]
§23Containers library,[object Object],新たなコンテナおよび同名の次のヘッダが追加されました。,[object Object],<array>,[object Object],<forward_list>,[object Object],<unordered_map>,[object Object],<unordered_set>,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],136,[object Object]
§24Iterators library,[object Object],C++0x総復習,[object Object]
ここはみんなで埋めてね!,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],138,[object Object]
§25Algorithms library,[object Object],C++0x総復習,[object Object]
§25Algorithms library,[object Object],all_of(§25.2.1), any_of(§25.2.2), none_of(§25.2.3), is_permutation(§25.2.12), move(§25.3.2) が追加されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],140,[object Object]
§26Numerics library,[object Object],C++0x総復習,[object Object]
§26.5 Random number generation,[object Object],乱数まわりが大幅に強化されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],142,[object Object]
§27Input/output library,[object Object],C++0x総復習,[object Object]
ここはみんなで埋めてね!,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],144,[object Object]
§28Regular expressions library,[object Object],C++0x総復習,[object Object]
§28Regular expressions library,[object Object],正規表現ライブラリが導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],146,[object Object]
§29Atomic operations library,[object Object],C++0x総復習,[object Object]
§29Atomic operations library,[object Object],Atomic操作ライブラリが導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],148,[object Object]
§30libraryThread support,[object Object],C++0x総復習,[object Object]
§30libraryThread support,[object Object],スレッドをサポートするライブラリが導入されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],150,[object Object]
Annex A Grammar summary,[object Object],C++0x総復習,[object Object]
Annex A Grammar summary,[object Object],文法の仕様変更に合わせてこの要約も修正されているだけなので特筆事項はなし。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],152,[object Object]
Annex B Implementation quantities,[object Object],C++0x総復習,[object Object]
Annex B (informative) Implementation quantities,[object Object],次の最小の推奨値について追加・修正されました。,[object Object],at_quick_exit() で登録できる関数 (32),[object Object],constexpr 関数の再帰呼び出し(512),[object Object],入れ子templateの再帰的インスタンス化(17->1024),[object Object],プレースホルダの数(10),[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],154,[object Object]
Annex C Compatibility,[object Object],C++0x総復習,[object Object]
Annex C Compatibility,[object Object],重要な互換性に関する情報がしれっと沢山明記されています。,[object Object],規格書の性質上旧バージョンとの差異については本体部分には直接的に明記されない為、ここで補完されています。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],156,[object Object]
Annex C Compatibility,[object Object],§C.1 C++ and ISO C はC言語との差分の話だから読み飛ばして、C++03 との差分をチェックしようと§C.2 C++ and ISO C++ 2003 をしっかり読もうかと思ったら、ここにも落とし穴があって、内容的に§C.1 と被る内容は§C.2には記述されていないので§C.1も読む必要があります!,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],157,[object Object]
Annex C Compatibility,[object Object],具体的に書かれている内容をピックアップすると…,[object Object],char * str = "invalid!";が invalid に!( §C.1.1 Clause 2: lexical conventions ),[object Object],整数に対する / および % の演算結果が負の値の場合でもゼロに近いほうへ丸めることに!( §C.2.2 Clause 5: expressions ),[object Object],記憶域種別指定子としての auto が削除されたってのも直接的な明記があるのはここ。( §C.2.3 Clause 7: declarations ),[object Object],禁止されたマクロ名に override, final, carries_dependency, noreturn を追加。( §C.2.7 Clause 17: library introduction ),[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],158,[object Object]
Annex D Compatibility features,[object Object],C++0x総復習,[object Object]
Annex D Compatibility features,[object Object],新たに deprecated になったもの。,[object Object],記憶域種別指定子としての register,[object Object],ユーザー定義のコピー代入operatorあるいはユーザー定義のデストラクタを持つクラスの暗黙的に作成されるコピーコンストラクタ,[object Object],動的例外仕様,[object Object],unary_functionおよび binary_functionクラステンプレート,[object Object],ptr_fun, mem_fun, mem_fun_refアダプタ,[object Object],binder1st, bind1st, binder2nd, bind2nd バインダ,[object Object],unexpected_handlerまわり,[object Object],動的例外仕様が deprecated なので。,[object Object],auto_ptr,[object Object],代わりに unique_ptrを推奨,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],160,[object Object]
Annex E Universal character names for identifier characters,[object Object],C++0x総復習,[object Object]
Annex E Universal character names for identifier characters,[object Object],ユニバーサルキャラクタ名として許可されている文字範囲から文字種の表記が消えました。,[object Object],ユニバーサルキャラクタ名として禁止されている文字範囲の記述が増えました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],162,[object Object]
Annex f Cross references,[object Object],C++0x総復習,[object Object]
Annex f Cross references,[object Object],クロスリファレンスが追加されました。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],164,[object Object]
補足情報,[object Object],C++0x総復習,[object Object]
規格,[object Object],ISO/IEC 14882,[object Object],C++ の国際規格。初版は ISO/IEC 14882:1998 で、現行版は ISO/IEC 14882:2003 。,[object Object],JIS X 3014,[object Object],C++ のJIS規格で ISO/IEC 14882 の邦訳版。現在は JIS X 3014:2003 のみ。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],166,[object Object]
規格,[object Object],FDIS,[object Object],Final Draft International Standard の略で、各国の投票により可決されれば、typo などの修正を除き原則的にほぼそのままIS(国際規格)となる。,[object Object],C言語の規格,[object Object],ISO/IEC 9899,[object Object],JIS X 3010,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],167,[object Object]
C++の呼称,[object Object],C++03,[object Object],ISO/IEC 14882:2003 のC++のこと。,[object Object],C++0x,[object Object],C++03 の次の C++ のこと。200X年にリリースされる次期C++としてそう呼ばれていたが実際には201X年にもつれ込んだ。既にさらに次のC++1xの名称が使われ出していたこともあり、混乱を避ける為にC++0xのまま通すことになった。,[object Object],C++1x,[object Object],C++0x の次の C++ のこと。201X年にリリースされる予定。,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],168,[object Object]
参考情報,[object Object],C++ Glossaryhttp://www.kmonos.net/alang/cpp/glossary.html( C++関連の各種略語の解説があります。 ),[object Object],C++0xの言語拡張まとめ(※随時更新)http://d.hatena.ne.jp/faith_and_brave/20071022/1193052163,[object Object],C++0x - Wikipediahttp://ja.wikipedia.org/wiki/C%2B%2B0x( C++0xで導入される各種機能の解説があります。 ),[object Object],C++0x - the next ISO C++ standard (英語)http://www2.research.att.com/~bs/C++0xFAQ.html,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],169,[object Object]
書籍,[object Object],本の虫(http://cpplover.blogspot.com/ )で、有名なC++標準化委員会WGのエキスパートメンバーでもある江添さんがC++0x本を現在執筆中ですので、出版されたら是非ともゲットしましょう!,[object Object],C++0x総復習 Boost.勉強会 #5 名古屋,[object Object],170,[object Object]
1 de 170

Recomendados

エラーハンドリング por
エラーハンドリングエラーハンドリング
エラーハンドリング道化師 堂華
3K vistas58 diapositivas
C++ tips4 cv修飾編 por
C++ tips4 cv修飾編C++ tips4 cv修飾編
C++ tips4 cv修飾編道化師 堂華
4K vistas48 diapositivas
競技プログラミングのためのC++入門 por
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門natrium11321
32.9K vistas63 diapositivas
C++ tips 3 カンマ演算子編 por
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編道化師 堂華
6.2K vistas24 diapositivas
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines por
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesShintarou Okada
13.1K vistas133 diapositivas
C++ tips1 #include編 por
C++ tips1 #include編C++ tips1 #include編
C++ tips1 #include編道化師 堂華
6.4K vistas31 diapositivas

Más contenido relacionado

La actualidad más candente

競技プログラミングにおけるコードの書き方とその利便性 por
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
18.2K vistas29 diapositivas
C++入門? por
C++入門?C++入門?
C++入門?tsudaa
3.6K vistas32 diapositivas
第1回勉強会スライド por
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライドkoturn 0;
2.1K vistas104 diapositivas
最新C++事情 C++14-C++20 (2018年10月) por
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)Akihiko Matuura
1.7K vistas39 diapositivas
第2回勉強会スライド por
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライドkoturn 0;
4K vistas80 diapositivas
C++ Template Meta Programming の紹介@社内勉強会 por
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会Akihiko Matuura
9.4K vistas59 diapositivas

La actualidad más candente(20)

競技プログラミングにおけるコードの書き方とその利便性 por Hibiki Yamashiro
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro18.2K vistas
C++入門? por tsudaa
C++入門?C++入門?
C++入門?
tsudaa3.6K vistas
第1回勉強会スライド por koturn 0;
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
koturn 0;2.1K vistas
最新C++事情 C++14-C++20 (2018年10月) por Akihiko Matuura
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura1.7K vistas
第2回勉強会スライド por koturn 0;
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
koturn 0;4K vistas
C++ Template Meta Programming の紹介@社内勉強会 por Akihiko Matuura
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura9.4K vistas
組み込みでこそC++を使う10の理由 por kikairoya
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya27K vistas
Javaとかc#とか最近の言語使いのためのc++入門 por potimarimo
Javaとかc#とか最近の言語使いのためのc++入門Javaとかc#とか最近の言語使いのためのc++入門
Javaとかc#とか最近の言語使いのためのc++入門
potimarimo7.4K vistas
Visual C++で使えるC++11 por nekko1119
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
nekko111936.8K vistas
クロージャデザインパターン por Moriharu Ohzu
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu19.6K vistas
C# 8.0 null許容参照型 por 信之 岩永
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永2.9K vistas
Map por kikairoya
MapMap
Map
kikairoya10.2K vistas
ゲーム開発者のための C++11/C++14 por Ryo Suzuki
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki103.5K vistas
知って得するC# por Shota Baba
知って得するC#知って得するC#
知って得するC#
Shota Baba9.7K vistas
新しい並列for構文のご提案 por yohhoy
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案
yohhoy29.6K vistas
オブジェクト指向できていますか? por Moriharu Ohzu
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu237.5K vistas

Destacado

バグベアード入門 por
バグベアード入門バグベアード入門
バグベアード入門道化師 堂華
2.1K vistas52 diapositivas
LUCIFERの設計コンセプトと 導入予定の機能紹介 por
LUCIFERの設計コンセプトと 導入予定の機能紹介LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介道化師 堂華
867 vistas60 diapositivas
独りガラパゴス開発 por
独りガラパゴス開発独りガラパゴス開発
独りガラパゴス開発道化師 堂華
5K vistas22 diapositivas
エラーハンドリングモデル考察 por
エラーハンドリングモデル考察エラーハンドリングモデル考察
エラーハンドリングモデル考察道化師 堂華
5K vistas32 diapositivas
Doc and Error Handling por
Doc and Error HandlingDoc and Error Handling
Doc and Error HandlingAkira Takahashi
4.2K vistas10 diapositivas
ふり返りハック ~ ライフをハッキングするために por
ふり返りハック ~ ライフをハッキングするためにふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために虹 父
3.7K vistas49 diapositivas

Destacado(20)

LUCIFERの設計コンセプトと 導入予定の機能紹介 por 道化師 堂華
LUCIFERの設計コンセプトと 導入予定の機能紹介LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介
道化師 堂華867 vistas
エラーハンドリングモデル考察 por 道化師 堂華
エラーハンドリングモデル考察エラーハンドリングモデル考察
エラーハンドリングモデル考察
道化師 堂華5K vistas
ふり返りハック ~ ライフをハッキングするために por 虹 父
ふり返りハック ~ ライフをハッキングするためにふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために
虹 父3.7K vistas
マインドハック研究会 ライフハック編 20100512 por tosch0718
マインドハック研究会 ライフハック編 20100512マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
tosch0718821 vistas
20161026_超高層大気観測データのメタデータ作成実験経過報告 por Yasuyuki Minamiyama
20161026_超高層大気観測データのメタデータ作成実験経過報告20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告
Yasuyuki Minamiyama466 vistas
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン por hiroyuki Yamamoto
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
hiroyuki Yamamoto1.6K vistas
社内Gtd勉強会 20101022 por tosch0718
社内Gtd勉強会 20101022社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
tosch07181.1K vistas
GTD 残業を減らす方法 por Gaddict
GTD 残業を減らす方法GTD 残業を減らす方法
GTD 残業を減らす方法
Gaddict728 vistas
TO LOVE IN'~人生のパートナーを見つける旅~ por Shuhei Hinoshita
TO LOVE IN'~人生のパートナーを見つける旅~TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~
Shuhei Hinoshita1.8K vistas
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」 por Marika UCHIDA
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
Marika UCHIDA6.8K vistas
Software Foundation:形式的証明と非形式的証明 por T T
Software Foundation:形式的証明と非形式的証明Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明
T T1.7K vistas
関西ライフハック研究会×アイデアプラント por Rikie Ishii
関西ライフハック研究会×アイデアプラント関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント
Rikie Ishii758 vistas

Similar a C++0x総復習

.NET Core 2.x 時代の C# por
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
6.2K vistas60 diapositivas
わんくま同盟大阪勉強会#61 por
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
957 vistas66 diapositivas
Prosym2012 por
Prosym2012Prosym2012
Prosym2012MITSUNARI Shigeo
2.7K vistas33 diapositivas
C++の復習 por
C++の復習C++の復習
C++の復習Toshihiko Ando
3K vistas42 diapositivas
Pfi Seminar 2010 1 7 por
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Preferred Networks
3.4K vistas60 diapositivas
Objc lambda por
Objc lambdaObjc lambda
Objc lambdamatuura_core
2.1K vistas47 diapositivas

Similar a C++0x総復習(20)

.NET Core 2.x 時代の C# por 信之 岩永
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永6.2K vistas
わんくま同盟大阪勉強会#61 por TATSUYA HAYAMIZU
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU957 vistas
T69 c++cli ネイティブライブラリラッピング入門 por 伸男 伊藤
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤5.2K vistas
C++0x 言語の未来を語る por Akira Takahashi
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
Akira Takahashi1.7K vistas
Visual C++コード分析を支えるSAL por egtra
Visual C++コード分析を支えるSALVisual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra4.2K vistas
Hello Dark-Side C# (Part. 1) por Yuto Takei
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
Yuto Takei1.2K vistas
C++0xの概要(デブサミ2010) por Akira Takahashi
C++0xの概要(デブサミ2010)C++0xの概要(デブサミ2010)
C++0xの概要(デブサミ2010)
Akira Takahashi1.3K vistas
言語処理系入門€10 por Kenta Hattori
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
Kenta Hattori836 vistas
Replace Output Iterator and Extend Range JP por Akira Takahashi
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JP
Akira Takahashi1.6K vistas
C++ lecture-0 por sunaemon
C++ lecture-0C++ lecture-0
C++ lecture-0
sunaemon1.3K vistas
Wrapping a C++ library with Cython por fuzzysphere
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cython
fuzzysphere4.1K vistas
asm.js x emscripten: The foundation of the next level Web games por Noritada Shimizu
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu2K vistas

Último

概念モデリングワークショップ 基礎編 por
概念モデリングワークショップ 基礎編概念モデリングワークショップ 基礎編
概念モデリングワークショップ 基礎編Knowledge & Experience
19 vistas71 diapositivas
01Booster Studio ご紹介資料 por
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料ssusere7a2172
220 vistas19 diapositivas
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料) por
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
217 vistas33 diapositivas
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 por
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化Knowledge & Experience
8 vistas34 diapositivas
概念モデリングワークショップ 設計編 por
概念モデリングワークショップ 設計編概念モデリングワークショップ 設計編
概念モデリングワークショップ 設計編Knowledge & Experience
10 vistas37 diapositivas
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) por
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
185 vistas63 diapositivas

Último(8)

01Booster Studio ご紹介資料 por ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172220 vistas
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料) por NTT DATA Technology & Innovation
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 por Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) por NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
さくらのひやおろし2023 por 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之83 vistas

C++0x総復習

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 142.
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.