Raw文字列中の改行コードについて

C++11 で追加された Raw文字列は、改行を含む文字列や正規表現用文字列を扱う際に便利です。

ところが、改行を含む文字列を扱う際に、1点注意点があります。それは
ソースファイル上の改行コードに関わらず、Raw文字列の改行コードは \n になる
という点です。
#include <iostream>
#include <string>

int main(void)
{
    // ソースファイル上、aとbの間は\r\n
    // しかし、Raw文字列には\nが格納される
    std::string raw = R"(a
b)";

    // 改行コードは\n(1バイト)
    std::cout << raw.size(); // => "3"
}
Windowsを使っている場合には、要注意であると言えます。

0 件のコメント:

コメントを投稿