こちらのサイト(江添亮のC++入門)を参考にC++を勉強中なのですが、「文字列」の章で以下のプログラムをコンパイルしようとするとエラーが出ます。
int main() { std::cout << "hello"s + "world"s ; }
エラー内容
main.cpp:2:26: error: no matching literal operator for call to 'operator""s' with arguments of types 'const char *' and 'unsigned long', and no matching literal operator template std::cout << "hello"s + "world"s; ^ main.cpp:2:41: error: no matching literal operator for call to 'operator""s' with arguments of types 'const char *' and 'unsigned long', and no matching literal operator template std::cout << "hello"s + "world"s; ^
"hello"
の後ろにあるs
が文字列型への変換を表しているのだけど、変換できないということを言っているのでしょうか。
上記のWebサイトでは普通に動くような記載になっているので、こちらは環境起因のエラーということでしょうか。
上記のエラーに関して知見をお持ちの方がいらっしゃいましたら、エラーの原因と解決方法をご教授いただけますと幸いです。よろしくお願いいたします。
間違った記述をしてしまいました、削除します。
回答2件
あなたの回答
tips
プレビュー