- C++相談室 part113
365 :デフォルトの名無しさん[sage]:2014/06/30(月) 21:06:47.19 ID:1cNt7cFr - template <size_t N>
struct foo { static const size_t value = (1<N)? 1 + foo<N/2>::value : 0; }; エラー 3 error C2057: 定数式が必要です。 エラー 1 error C2065: 'value' 定義されていない識別子です。 死ねよ
|
- C++相談室 part113
368 :デフォルトの名無しさん[sage]:2014/06/30(月) 22:05:10.42 ID:1cNt7cFr - >>366
なんで不自由コンパイラをかばうんだよ
|
- C++相談室 part113
372 :デフォルトの名無しさん[sage]:2014/06/30(月) 22:22:39.51 ID:1cNt7cFr - >>369
あなたのコードは素晴らしい。 constexpre も素晴らしい。 ついさっき template alias がらみでも不具合を見つけてついかっとなってしまった。
|
- C++相談室 part113
373 :デフォルトの名無しさん[sage]:2014/06/30(月) 22:26:45.39 ID:1cNt7cFr - >>371
上に書いたとおり、ついカッとなってしまったんだよ。 とりあえずコードは明示的に特殊化したら動いた。 template <size_t N> struct foo { static const size_t value = 1 + foo<N/2>::value; }; template <> struct foo<0> { static const size_t value = 0; }; template <> struct foo<1> { static const size_t value = 0; };
|