2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

ねねっちの真似してC++から勉強し始めた僕、当たり前のように死亡する

1 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:33:16.088 ID:QDcfeNiu0.net
if constexprでコンパイルエラーになる条件が理解できない

2 :C言語ますたー《ますたー軍団(常時募集)の長》 :2017/08/18(金) 07:35:44.264 ID:SmDp3UOAM.net
ソース貼れば見てあげますよ

3 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:37:23.480 ID:o4lfCkXp0.net
どうせ全角スペース入れてるんだろ

4 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:38:57.662 ID:QDcfeNiu0.net
>>2
サンプルコードなんだが
template<class T>
int f() {
if constexpr (std::is_same<T, int>{}) {
// ...
} else if constexpr (std::is_same<T, float>{}) {
// ...
} else {
static_assert(false, "Bad T!!!!");
}
}
これが常にコンパイルエラーになる理由がわからない
static_assertをコメント化すると通るからこれが関係してるっぽいんだが

5 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:40:17.106 ID:jnulHyUod.net
C++17やん
11/14にしておけ

6 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:42:33.725 ID:dHDVHkZp0.net
ねねっちはC読み込んでからC++始めたんだぞ

7 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:44:26.463 ID:C+k/lnv/0.net
テンプレートよくわかんないけど、Tに指定した型がintでもfloatでもないってことだろ

8 :C言語ますたー《ますたー軍団(常時募集)の長》 :2017/08/18(金) 07:45:39.790 ID:SmDp3UOAM.net
constexprとか使った事ないから分からないわ(´・ω・`)

9 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:46:16.424 ID:QDcfeNiu0.net
あともう1つ
tupleとpairって何が違うんだ?

>>7
その通りなんだけどこの場合intやfloatでもコンパイルエラーになる

10 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 07:47:52.521 ID:4z0AKxcwd.net
よく知らんけどstd=であってるの?

11 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 08:10:21.994 ID:C+k/lnv/0.net
T -> T::typeかな?全然わかんねーや

12 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 17:53:38.473 ID:5ZrJpr/Q0.net
>>4
static_assert(false, "Bad T!!!!");はTに依存していないので、
constexprで分岐されるまえに評価されてassertされる

13 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 17:59:09.902 ID:5ZrJpr/Q0.net
ちなみに詳細な解説はこれな
https://cpplover.blogspot.jp/2017/05/constexpr-if.html

>>9
std::pairは、より汎用的なstd::tupleが発明される遥か前に実装されたものであり、現在は互換性のためにあるようなもん
ただし、値を取るのにstd::get<0>(tuple), std::get<1>(tuple)みたいな事をせずとも、
pair.first, pair.second で済むので簡易

14 :以下、\(^o^)/でVIPがお送りします:2017/08/18(金) 18:59:00.454 ID:QDcfeNiu0.net
>>12-13
覗いて良かった
そういうことだったのね
thx

総レス数 14
4 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★