タグ付けされた質問 「pseudo-destructor」

2
浮動小数点定数の疑似デストラクターを呼び出す有効な構文
次のデモプログラムを検討してください。 #include <iostream> int main() { typedef float T; 0.f.T::~T(); } このプログラムはによってコンパイルされMicrosoft Visual Studio Community 2019ます。 しかしclang、gccこのようなエラーを発行します prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ このような式を記述する場合、( 0.f ).T::~T()3つのコンパイラすべてがプログラムをコンパイルします。 したがって、疑問が生じ0.f.T::~T()ます。このレコードは構文的に有効ですか?そうでない場合、どの構文規則が違反していますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.