C++相談室 part166 (569レス)
前次1-
抽出解除 レス栞

235
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-2Myj) [sage] 2025/06/05(木) 17:37:36.07 ID:BNqgyRrD0(2/3) AAS
>>233
233(2): デフォルトの名無しさん (ワッチョイ 69d6-a+Ou) [sage] 2025/06/05(木) 16:59:25.81 ID:I5agSXi50(1/3) AAS
単純なんですが、わからんので教えてください。
#include <iostream>
int main(){
std::cout <<"hello"s<<std::endl;
}
がエラーになります。なんか勘違いしてます?sは無理につけないほうがいいのかな?!
$ g++ -Wall -Wextra -std=c++23 -O2 -DGNU_SOURCE main.cpp -o main
g++は11.4.0
結論から言うとこういう感じ。

#include <iostream>
#include <string>

int main(){
using namespace std::literals::string_literals;
std::cout <<"hello"s<<std::endl;
}

s はヘッダ string の中の std::literals::string_literals という名前空間で定義されているからこういう形で using してからじゃないと使えない。
この単純なケースだけを見れば s を付ける利点は何もないけど状況次第。
237: デフォルトの名無しさん (ワッチョイ 69d6-a+Ou) [sage] 2025/06/05(木) 17:40:53.81 ID:I5agSXi50(3/3) AAS
>>235
御意 mOm 色々あるのですね・・・
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s