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

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
234
(1): デフォルトの名無しさん (ブーイモ MM76-+XEO) [sage] 2025/06/05(木) 17:33:40.39 ID:Ze0QqwpuM(1) AAS
>>233
#include <string>
using namespace std::string_literals;
235
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-2Myj) [sage] 2025/06/05(木) 17:37:36.07 ID:BNqgyRrD0(2/3) AAS
>>233
結論から言うとこういう感じ。

#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 を付ける利点は何もないけど状況次第。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.945s*