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

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/11/05 11:26 編集
2023/10/28 16:04
2023/10/29 01:38
2023/10/29 03:15