▼ 2014/12/31 (水) 16:28:40 もか | |
[2224] Re: ダブルクォーテーション文字列の判定が変 |
そのURLで確認しました。
今の実装だと、「R"なにがし(」の文字列は、C++11のRaw Stringとみなされるので、
その終端がないものとして、この場合は「) "」が現れるまで文字列になります。
もしRと"の間にスペース1つでもあればRaw Stringとは認識されません。
これどうしたらいいと思う?
1. Rの直前にu8w以外が来ているかチェックする
\b(u|u8|w)R"[^(]*\(
の正規表現相当でチェック。\bの具体的パターンはよく分からない。
2. C++とは別にC/C++03文字列を追加してそっちを使ってもらう
作るのは簡単そうだけど、使う人が面倒
しかし、""文字列型を汎用として使うにはR"str...も普通の文字列としたい場合などあったほうがいいかも。
1.2.両方かな。
PRIdPTR等はC99みたいなので、何とかしようと思います。
|
|