発生している問題・エラーメッセージ
下記コードのコンパイル可否の挙動が、MSVC と Clang で異なります。
「 C++20の言語仕様の時点で、どちらの挙動が正しいか? 」を、明確に把握してる方がいらっしゃったら、是非伺えると幸いです。
どうぞよろしくお願いします。
該当のソースコード
c++11
1#include <cstdio>2#include <cstdlib>3 4// MSVC で NG だが、Clang で OK5constexpr float operator ""_pi( const char* i_value ){6 return std::strtof( i_value, nullptr ) * 3.14159265f; // strtof() と constexpr の関係が問題。コンパイル可否の違いになっている7}8 9int main(){10 std::printf( "%f\n", 2_pi );11}
試したこと
下記の両コンパイラでコンパイルを試み、結果を確認した
補足情報(FW/ツールのバージョンなど)
試行したコンパイラ
Microsoft(R) C/C++ Optimizing Compiler Version 19.37.32825 for x86
Clang 16.0
0 コメント