2016-10-28 1 views
0
struct A{ 
    constexpr A(){} 
}; 

A a; 

int main(){} 

ライブサンプルをご覧ください:ColiruおよびCompiler explorerclangはColiruでこのスニペットをコンパイルしますが、コンパイラエクスプローラではコンパイルしません。どうして?

+0

コンパイルフラグを忘れないでください。https://godbolt.org/g/pWndZO – krzaq

+0

異なるコンパイラオプションはありますか? 'clang ++ -std = C++ 1z'のように。 –

+0

@krzaqありがとう。ボックスを空のままにすると、デフォルトのフラグは何ですか? –

答えて

1

ないコンパイラエクスプローラでいる間あなたは、coliruで以下のコンパイルオプションを使用:

-std=c++1z -O2 -Wall -pedantic -fno-elide-constructors -pthread 

をあなたのコードはconstexprを使用しているため、ここでの重要な部分があることを現代的なC++のサポート(C++ 17を有効にする-std=c++1zですC++ 11を有効にするには-std=c++11で十分です)。

+0

コンパイラエクスプローラでボックスを空のままにしたときのフラグは何ですか? –

+0

これは私が知らないclangのデフォルト値です。しかし、clang 3.9.0ではC++ 11のサポートがデフォルトで無効になっていることがわかりました – wasthishelpful

関連する問題