エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
constexpr ifの落とし穴
会社の同僚から、以下のようなコードが動かない、ネット上をググると解決策らしきものが見つかるがそれ... 会社の同僚から、以下のようなコードが動かない、ネット上をググると解決策らしきものが見つかるがそれもいまいち納得できない、という相談を受けた。 template < typename T > void f() { if constexpr ( std::is_same<T, int>{} ) { // Tがintのときのみ発動してほしい // 実際は常に発動する static_assert( false ) ; } } C++17にはconstexpr ifが追加された。これは条件付きコンパイルではない。条件付き実体化抑制だ。 constexpr ifは以下のように使う。 struct S { int value() { return 42 ; } } ; template < typename T > int to_int(T t) { int value{} ; if constexpr
2018/09/13 リンク