yohhoyの日記

技術的メモをしていきたい日記

2017-07-01から1ヶ月間の記事一覧

関数テンプレートでの可変長引数テンプレート明示特殊化の複雑な関係

C++

プログラミング言語C++において、可変長引数テンプレートのテンプレート・パラメータパック(template parameter pack)は、関数テンプレートに対する明示的なテンプレート実引数指定では完全に特殊化できない(パターンがある)。本記事の内容はStack Overflo…

fallthrough属性利用時のちょっとした注意点

C++1z(C++17)で追加される fallthrough属性 の利用に関する注意点について。下記コードの★部ではフォールスルー(fallthrough)明示を意図しているが、C++コンパイラはプログラマの期待通り振舞わない。これは末尾セミコロン(;)を忘れたことで、fallthrough属…

std::stringとリスト初期化の小さな罠

C++

C++標準ライブラリの文字列型std::stringと、リスト初期化(list initialization)の組み合わせによる落とし穴。2個の文字列リテラルによるstd::stringのリスト初期化は、ほとんどのC++処理系においてコンパイル時には問題検知されないが*1、実行時に未定義動…

条件演算子と親クラスへの型推論(Java編)

プログラミング言語Javaにおける条件演算子(conditional operator) ?: と、子クラスから親クラスへの型推論(の一部)に関してメモ。条件演算子の第2, 3項目に親クラスParentから派生した子クラスChild1, Child2を指定した場合、Javaでは部分式 (b ? c1 : c2…

条件演算子と親クラスへの型推論(C++編)

C++

プログラミング言語C++における条件演算子(conditional operator) ?: と、子クラスから親クラスへの型推論に関してメモ。条件演算子の第2, 3項目に親クラスParentから派生した子クラスChild1, Child2を指定した場合、C++では型推論に失敗してコンパイルエラ…

条件演算子と親クラスへの型推論(C#編)

C#

プログラミング言語C#における条件演算子(conditional operator) ?: と、子クラスから親クラスへの型推論に関してメモ。条件演算子の第2, 3項目に親クラスParentから派生した子クラスChild1, Child2を指定した場合、C#では型推論に失敗してコンパイルエラー…