ラムダ式(Lambda expressions)
-ラムダ式(lambda expression)は、関数オブジェクトを簡単に記述するための式である。以下のような文法になる +ラムダ式(lambda expression)は、関数オブジェクトを簡単に記述するための式である。以下のような文法になる。
@@ -6626,7 +6626,7 @@ void f( Types ... args ) 式 [ 初期化リスト ]
-operator []は、添字と呼ばれる式である。これは、配列の要素にアクセスするために用いられる。どちらか片方の式は、Tへのポインター型でなければならず、もう片方は、unscoped enumか、整数型でなければならない。式の結果は、lvalueのTとなる。式、E1[E2] は、*((E1)+(E2)) と書くのに等しい +operator []は、添字と呼ばれる式である。これは、配列の要素にアクセスするために用いられる。どちらか片方の式は、Tへのポインター型でなければならず、もう片方は、unscoped enumか、整数型でなければならない。式の結果は、lvalueのTとなる。式、E1[E2] は、*((E1)+(E2)) と書くのに等しい。
@@ -9640,7 +9640,7 @@ int main()
-乗除算の演算子は、「左から右」に評価される +乗除算の演算子は、「左から右」に評価される。
@@ -11148,7 +11148,7 @@ if文は、条件の値によって、実行すべき文を変える。
-条件がtrueと評価された場合、一つ目の文が実行される。条件がfalseと評価された場合、elseに続く二つ目の文が有るのならば、二つ目の文が実行される +条件がtrueと評価された場合、一つ目の文が実行される。条件がfalseと評価された場合、elseに続く二つ目の文が有るのならば、二つ目の文が実行される。
@@ -12647,7 +12647,7 @@ static_assert( false, "hello" ) ;
-具体的な利用例としては、今、int型のサイズが4バイトであることを前提としたコードを書きたいとする。このコードは当然ながらポータビリティがない。そこで、int型のサイズが4バイトではない環境では、コンパイルエラーになってほしい。これは、以下のように書ける +具体的な利用例としては、今、int型のサイズが4バイトであることを前提としたコードを書きたいとする。このコードは当然ながらポータビリティがない。そこで、int型のサイズが4バイトではない環境では、コンパイルエラーになってほしい。これは、以下のように書ける。
@@ -13318,7 +13318,7 @@ constexpr int h( unsigned int n )
-以下は、constexpr関数の制約を満たさない誤ったコードの例である +以下は、constexpr関数の制約を満たさない誤ったコードの例である。
// エラー、使えない文の使用 @@ -13554,7 +13554,7 @@ constexpr non_literal c{ } ;
-初期化にコンストラクター呼び出しが行われる場合、コンストラクター呼び出しは定数式でなければならない +初期化にコンストラクター呼び出しが行われる場合、コンストラクター呼び出しは定数式でなければならない。
@@ -13654,7 +13654,7 @@ unsigned b = 0 ;-また、shortやlongやlong longは、それぞれintが省略されたものとみなされる +また、shortやlongやlong longは、それぞれintが省略されたものとみなされる。
@@ -14510,7 +14510,7 @@ enum宣言によって、宣言のみされたenum名は、通常のenumと同-列挙子を使うことができないenum宣言に、何の意味があるのか。enum宣言が導入された背景には、ある種の利用方法では、すべての翻訳単位に列挙子が必要ないこともあるのだ +列挙子を使うことができないenum宣言に、何の意味があるのか。enum宣言が導入された背景には、ある種の利用方法では、すべての翻訳単位に列挙子が必要ないこともあるのだ。
無駄な定義を省く
@@ -14835,7 +14835,7 @@ namespace ln = long_name ;
-同じ宣言領域で、別名と名前空間の名前が衝突してはならない +同じ宣言領域で、別名と名前空間の名前が衝突してはならない。
@@ -15327,7 +15327,7 @@ extern "C"
-リンケージ指定は、名前空間スコープの中でのみ、使うことができる。ブロックスコープ内などでは使えない +リンケージ指定は、名前空間スコープの中でのみ、使うことができる。ブロックスコープ内などでは使えない。
@@ -15423,7 +15423,7 @@ NOTE: アトリビュートの解説は、C++14となる予定の現時点での
-アトリビュートの文法は、以下のようになる +アトリビュートの文法は、以下のようになる。
@@ -15465,7 +15465,7 @@ struct S
-ただし、ビットフィールド、関数の仮引数、例外宣言、registerストレージクラス指定子つきで宣言された変数には指定できない +ただし、ビットフィールド、関数の仮引数、例外宣言、registerストレージクラス指定子つきで宣言された変数には指定できない。
@@ -15580,7 +15580,7 @@ alignas( int ) int x ;
-ひとつのエンティティに複数のアライメントが指定された場合、最も厳格なアライメント要求になる +ひとつのエンティティに複数のアライメントが指定された場合、最も厳格なアライメント要求になる。
@@ -15617,7 +15617,7 @@ struct alignas(16) S ; // エラー、同等ではない
-もし、エンティティの宣言のどれかひとつにでもアライメント指定子があった場合、そのエンティティの定義となる宣言にも、同等のアライメントを指定しなければならない +もし、エンティティの宣言のどれかひとつにでもアライメント指定子があった場合、そのエンティティの定義となる宣言にも、同等のアライメントを指定しなければならない。
@@ -16226,7 +16226,7 @@ int S:: * ptr_value = &S::value ;
-メンバーへのポインターは、クラスのstaticなメンバーを参照することはできない。また、リファレンス型のメンバーを参照することもできない +メンバーへのポインターは、クラスのstaticなメンバーを参照することはできない。また、リファレンス型のメンバーを参照することもできない。
@@ -19010,7 +19010,7 @@ class A { void f(void) ; } ; // クラスAは定義された-クラスの宣言で、クラス名の後、基本クラスの前にfinalを記述できる +クラスの宣言で、クラス名の後、基本クラスの前にfinalを記述できる。
@@ -20333,7 +20333,7 @@ int main()-リファレンスは、ビットフィールドを参照することはできない。ただし、constなlvalueリファレンスの初期化子が、lvalueのビットフィールドの場合は、一時オブジェクトが生成され、そのオブジェクトを参照する +リファレンスは、ビットフィールドを参照することはできない。ただし、constなlvalueリファレンスの初期化子が、lvalueのビットフィールドの場合は、一時オブジェクトが生成され、そのオブジェクトを参照する。
@@ -21753,7 +21753,7 @@ int main()-アクセス指定子とは、private、protected、publicのいずれかである。アクセス指定子が現れた場所から、次のアクセス指定子か、クラス定義の終了までの間のメンバーが、アクセス指定子の影響を受ける +アクセス指定子とは、private、protected、publicのいずれかである。アクセス指定子が現れた場所から、次のアクセス指定子か、クラス定義の終了までの間のメンバーが、アクセス指定子の影響を受ける。
@@ -22779,7 +22779,7 @@ int main()-クラスXのデフォルトコンストラクターは暗黙にdelete定義される。Y::refには初期化子がある。Zにはユーザー定義のコンストラクターがある +クラスXのデフォルトコンストラクターは暗黙にdelete定義される。Y::refには初期化子がある。Zにはユーザー定義のコンストラクターがある。
@@ -22863,7 +22863,7 @@ unionのすべての非staticデータメンバーがconst修飾されている
-直接の基本クラス、仮想基本クラス、初期化子のない非staticデータメンバーの型が、デフォルトコンストラクターが使えない型である場合。これには、配列型も含まれる +直接の基本クラス、仮想基本クラス、初期化子のない非staticデータメンバーの型が、デフォルトコンストラクターが使えない型である場合。これには、配列型も含まれる。
@@ -23017,7 +23017,7 @@ int main()-クラスXはデフォルトコンストラクターを使っているので、暗黙のデフォルトコンストラクターがdefault化される。しかし、リファレンスの非staticデータメンバーを持つことにより、同等のユーザー定義のデフォルトコンストラクターがエラーになるので、エラーとなる。一方、クラスYでは、デフォルトコンストラクターが使われていない +クラスXはデフォルトコンストラクターを使っているので、暗黙のデフォルトコンストラクターがdefault化される。しかし、リファレンスの非staticデータメンバーを持つことにより、同等のユーザー定義のデフォルトコンストラクターがエラーになるので、エラーとなる。一方、クラスYでは、デフォルトコンストラクターが使われていない。
@@ -25388,7 +25388,7 @@ struct S
-非staticデータメンバーがrvalueリファレンス型である場合、コピーコンストラクターがdelete定義される +非staticデータメンバーがrvalueリファレンス型である場合、コピーコンストラクターがdelete定義される。
@@ -25787,7 +25787,7 @@ struct S-暗黙に定義されたコピー/ムーブ代入演算子は、以下の条件をすべて満たした場合、constexpr関数になる +暗黙に定義されたコピー/ムーブ代入演算子は、以下の条件をすべて満たした場合、constexpr関数になる。
-
@@ -27022,7 +27022,7 @@ int main()
変換関数によるクラスではないオブジェクトの初期化(Initialization by conversion function)
-クラスではないオブジェクトを、クラスのオブジェクトの初期化式で初期化する際、クラスの変換関数が候補関数として列挙され、オーバーロード解決が行われる。実引数リストには、初期化式がひとつの実引数として渡される +クラスではないオブジェクトを、クラスのオブジェクトの初期化式で初期化する際、クラスの変換関数が候補関数として列挙され、オーバーロード解決が行われる。実引数リストには、初期化式がひとつの実引数として渡される。
@@ -27080,7 +27080,7 @@ int main()-まず一段階に、クラスの初期化リストコンストラクターが候補関数として列挙され、オーバーロード解決が行われる。実引数リストには、初期化リストが唯一の実引数として、std::initializer_list<T>の形で、与えられる +まず一段階に、クラスの初期化リストコンストラクターが候補関数として列挙され、オーバーロード解決が行われる。実引数リストには、初期化リストが唯一の実引数として、std::initializer_list<T>の形で、与えられる。
@@ -27107,7 +27107,7 @@ int main()-もし、一段階目の名前解決で、適切な初期化リストコンストラクターが見つからなかった場合、二段階の候補関数として、再びオーバーロード解決が行われる。今度は、クラスのすべてのコンストラクターが候補関数として列挙される。実引数は、初期化リストの中の要素が、それぞれ別の実引数として渡される +もし、一段階目の名前解決で、適切な初期化リストコンストラクターが見つからなかった場合、二段階の候補関数として、再びオーバーロード解決が行われる。今度は、クラスのすべてのコンストラクターが候補関数として列挙される。実引数は、初期化リストの中の要素が、それぞれ別の実引数として渡される。
@@ -27704,7 +27704,7 @@ X operator / ( X &, X &, X & ) ; // エラー、仮引数が多い-演算子関数は、組み込みの演算子と同じ挙動を守らなくてもよい。例えば、戻り値の型は自由であるし、オーバーロードされた演算子関数が、基本型にその単項演算子を適用した場合に期待される挙動をしなくてもかまわない。例えば、オーバーロードした演算子関数では、"++a"、と、"a += 1"というふたつの式を評価した際の挙動や結果が同じにならなくてもよい。また、組み込み演算子ならば非constなlvalueを渡す演算子で、constなlvalueやrvalueを受け取っても構わない +演算子関数は、組み込みの演算子と同じ挙動を守らなくてもよい。例えば、戻り値の型は自由であるし、オーバーロードされた演算子関数が、基本型にその単項演算子を適用した場合に期待される挙動をしなくてもかまわない。例えば、オーバーロードした演算子関数では、"++a"、と、"a += 1"というふたつの式を評価した際の挙動や結果が同じにならなくてもよい。また、組み込み演算子ならば非constなlvalueを渡す演算子で、constなlvalueやrvalueを受け取っても構わない。
@@ -28430,7 +28430,7 @@ void * operator new( std::size_t size, const std::nothrow_t & ) noexcept ;
-前項の確保関数と同じ。ただし、エラー報告としてstd::bad_allocをthrowする代わりに、nullポインターを返す +前項の確保関数と同じ。ただし、エラー報告としてstd::bad_allocをthrowする代わりに、nullポインターを返す。
-operator new(size)を返す +operator new(size)を返す。
@@ -28587,7 +28587,7 @@ void * operator new[]( std::size_t size, const std::nothrow_t & ) noexcept ;
-適切にアラインされたストレージへのポインターを返すか、nullポインターを返す +適切にアラインされたストレージへのポインターを返すか、nullポインターを返す。
-この解放関数は、配列型のdelete式から、ptrの値を無効にするために呼ばれる +この解放関数は、配列型のdelete式から、ptrの値を無効にするために呼ばれる。
-operator delete[](ptr)を呼び出す +operator delete[](ptr)を呼び出す。
@@ -28842,7 +28842,7 @@ using type = T ;
-テンプレート仮引数リストのテンプレート仮引数名は省略できる +テンプレート仮引数リストのテンプレート仮引数名は省略できる。
@@ -29518,7 +29518,7 @@ X<int> テンプレートXをintに特殊化したテンプレートID
-
-テンプレート名、演算子関数ID(オーバーロード演算子のテンプレートの場合)、リテラル演算子ID(オーバーロードリテラル演算子のテンプレートの場合)が同じ +テンプレート名、演算子関数ID(オーバーロード演算子のテンプレートの場合)、リテラル演算子ID(オーバーロードリテラル演算子のテンプレートの場合)が同じ。
@@ -30221,7 +30221,7 @@ int main( )
-もうひとつは、テンプレートテンプレート仮引数パックの中で、先に宣言されたテンプレート仮引数パックが使われる場合。パターンは...を除いた部分となる +もうひとつは、テンプレートテンプレート仮引数パックの中で、先に宣言されたテンプレート仮引数パックが使われる場合。パターンは...を除いた部分となる。
@@ -30431,7 +30431,7 @@ struct Y-例えば、以下のような型を引数に取る実装依存のアトリビュートトークンがあったとする +例えば、以下のような型を引数に取る実装依存のアトリビュートトークンがあったとする。
@@ -32206,7 +32206,7 @@ void f()
-templateキーワードの指定は、実際には文法の曖昧性の問題であって、名前解決の問題ではないのだが、typenameキーワードの指定と似ているために、便宜上、本書では同時に説明することにした +templateキーワードの指定は、実際には文法の曖昧性の問題であって、名前解決の問題ではないのだが、typenameキーワードの指定と似ているために、便宜上、本書では同時に説明することにした。
-関数tryブロック(function-try-block)は、関数の本体に記述できる +関数tryブロック(function-try-block)は、関数の本体に記述できる。
@@ -33954,7 +33954,7 @@ struct X
-関数tryブロックがコンストラクターかデストラクターの本体に用いられた場合、複合文と、構築と破棄の際にクラスのサブオブジェクトが例外を投げた場合、ハンドラーに処理が移る +関数tryブロックがコンストラクターかデストラクターの本体に用いられた場合、複合文と、構築と破棄の際にクラスのサブオブジェクトが例外を投げた場合、ハンドラーに処理が移る。
@@ -34031,7 +34031,7 @@ struct Y : throw_at_destruction
-例外を投げると、処理はハンドラーに移る。例外を投げるときには、オブジェクトが渡される。オブジェクトの型によって、処理が渡されるハンドラーが決まる +例外を投げると、処理はハンドラーに移る。例外を投げるときには、オブジェクトが渡される。オブジェクトの型によって、処理が渡されるハンドラーが決まる。
@@ -34746,7 +34746,7 @@ catch ( int f( void ) ) // int (*f)(void)と同じ
-あるハンドラーが、例外オブジェクトの型Eと適合する条件は以下の通り +あるハンドラーが、例外オブジェクトの型Eと適合する条件は以下の通り。
-
@@ -35223,7 +35223,7 @@ int main()
-例外宣言が、例外の型のみで名前を指定していない場合、例外の型の一時オブジェクトが生成され、例外オブジェクトからコピー初期化される +例外宣言が、例外の型のみで名前を指定していない場合、例外の型の一時オブジェクトが生成され、例外オブジェクトからコピー初期化される。
From 3dc1d03dd2c06db578d94701e784786d41fa5b7f Mon Sep 17 00:00:00 2001 From: watikoDate: Sat, 16 Aug 2014 17:07:38 +0900 Subject: [PATCH 2/3] Add period --- C++11-Syntax-and-Feature.xhtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C++11-Syntax-and-Feature.xhtml b/C++11-Syntax-and-Feature.xhtml index febddd2..39f5449 100644 --- a/C++11-Syntax-and-Feature.xhtml +++ b/C++11-Syntax-and-Feature.xhtml @@ -18009,7 +18009,7 @@ char32_t utf32_str[6] = U"hello" ; -文字配列の要素数が指定されていない場合、初期化子の文字列リテラルの要素数になる +文字配列の要素数が指定されていない場合、初期化子の文字列リテラルの要素数になる。
From f31dd213f2cda8c64826aa4eaeb64b4ce09aa0e7 Mon Sep 17 00:00:00 2001 From: watikoDate: Sun, 17 Aug 2014 01:20:33 +0900 Subject: [PATCH 3/3] Add period --- C++11-Syntax-and-Feature.xhtml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/C++11-Syntax-and-Feature.xhtml b/C++11-Syntax-and-Feature.xhtml index 39f5449..4f727c4 100644 --- a/C++11-Syntax-and-Feature.xhtml +++ b/C++11-Syntax-and-Feature.xhtml @@ -4532,7 +4532,7 @@ rvalueリファレンスの導入により、ストレージなどの確保、 -アライメント指定子を使うことによって、より厳格なアライメントを要求することができる。詳細はアライメント指定子を参照 +アライメント指定子を使うことによって、より厳格なアライメントを要求することができる。詳細はアライメント指定子を参照。
@@ -13185,7 +13185,7 @@ b // 宣言子@@ -16351,7 +16351,7 @@ int a[] = { 1, 2, 3 } ; // 型はint [3] friend指定子(The friend specifier)