C++相談室 part166at TECH
C++相談室 part166 - 暇つぶし2ch749:デフォルトの名無しさん
25/11/15 10:22:10.37 ncudN0/g0.net
747は、(実際の仕様はそうなっていないけど)引数でのみ使用可能なら良かったのに……という意味だと思うぞ。

750:デフォルトの名無しさん
25/11/15 19:11:12.30 lfrbAWbT0.net
ああ
>使用可能で良かったと思うよ

ではなく、

>使用可能だったら良かったのにと思うよ
って事ですか

751:デフォルトの名無しさん
25/11/15 19:25:57.81 3JdS/6Ib0.net
カスみたいな読解力

752:デフォルトの名無しさん
25/11/15 19:35:13.09 QqRirP4Fr.net
そんなコミュ力高かったら、石が友達なんて言わない

753:デフォルトの名無しさん
25/11/15 19:39:44.33 ncudN0/g0.net
分かりやすいように749みたいに書いたけど、747で普通に意味が通じるので、「ではなく」というとちょっと違う気がするかな。言葉って難しい。

754:デフォルトの名無しさん
25/11/16 01:00:07.67 oagsDxeg0.net
こういう人が仕様書読んで実装すると思うとこわい

755:デフォルトの名無しさん
25/11/16 13:18:16.47 0LN83zrSa.net
横からだけど
>>747 で充分判る
>>748 は本当に日本人か?

756:デフォルトの名無しさん
25/11/16 13:32:50.84 Xh/GBEYv0.net
C++ばっかりやっとるからだよ
日本語を使え

757:デフォルトの名無しさん
25/11/16 16:38:31.73 r6khXsKc0.net
>>755
>748だけど日本人だよ。
>747日本語の文法としておかしいと思うんだが分かるんか…。
こっちが年食ったんかなぁ…。

758:デフォルトの名無しさん
25/11/16 16:49:19.65 D8AV/AUw0.net
あんたは機能的非識字なんでしょ
歳とか関係ないって

759:デフォルトの名無しさん
25/11/16 18:20:15.84 fnmgx6dT0.net
747は、日本語の文法としておかしなところは別にないけれども、748のような読み方も許すという点で多義的な文にはなっているかな。
「C++より~ように」という前半の文脈があるので748のような受け取り方はしない方が普通だと思うが、文法的には748のような読み方も一応可能だろう。
「使用可能(ということ)で良かった」としたら、完全に一義的になっているとまでは言えないまでも、多少ニュアンスは明確になっているかな。そうでもないか。

760:デフォルトの名無しさん
25/11/16 19:06:28.66 B8gkzotY0.net
>>757
文字なんでニュアンスが伝わりづらいだけだよ

「この前の件だけど、両方出来るようになったよ」
「他と同じように片方のみで良かったと思うよ」

まあ誤解を与えない書き方とすると

「他と同じように片方のみで良かったのにと思うよ」
って感じで「のに」をいれた方が残念がっている様子が伝わってくるよね

761:デフォルトの名無しさん
25/11/17 09:06:44.31 g7E0m0EQ0.net
C++はよく分からないので、cpprefjpにはいつもお世話になっているんだけど、生文字列リテラルのところにある「改行が入力された場合、改行の制御文字 '\n' に変換される」というのは説明として正確なのかな。
raw文字列リテラルのところの規格にはそれっぽいことは書いていないように思うし、改行文字は通常の文字としてそのままraw文字列リテラルに含められるだけであって、別に「変換」とかはされていないんじゃないかと思うんだけど。

762:はちみつ餃子
25/11/17 10:18:46.23 DdlSQj440.net
>>761
'\n' に変換するという説明は誤りだと私も思う。
規格内の例中では \n と同等というような説明はあるのでこれを変換と誤解したのかも?
URLリンク(timsong-cpp.github.io)

763:はちみつ餃子
25/11/17 10:27:40.74 DdlSQj440.net
余談だけど生文字列リテラルの扱いにはちょっと変な特別扱いがある。
C++ では処理の初期段階で行を連結 (改行を削除) してしまうことになっていて、その時点では各改行が生文字列リテラルの中なのかどうか認識してない。
URLリンク(timsong-cpp.github.io)
後でトークンを分割するときになって生文字列リテラルを認識したらその範囲では連結を「取り消す」という処理が入る。
URLリンク(timsong-cpp.github.io)
結果としては改行はそのまま含まれるだけなんだけど、理屈としては色々な操作 (変換?) はされてる。

ただ、これは C++ の言語の解釈の話であって処理系の実装方法ではない。
つまり結果が同じであれば実装方法は問わないので連結してから取り消すのではなく連結の例外にしてもかまわないし、
生文字列リテラルを普通の文字列リテラルに変換するような手法もあるのかもしれない。

764:デフォルトの名無しさん
25/11/17 20:16:57.16 3c799E+W0.net
>>761
gccにCRLF改行のソースコードを食わせてもLF(\n)だけになったので変換はされてるんじゃないか
他のコンパイラの動作はしらね

765:デフォルトの名無しさん
25/11/18 02:43:23.41 oTdu6LNz0.net
>>763
削除されるのは「\(改行)」(Pythonとかでは明示的な行継続と言われているやつ)みたいなやつだけで、(\ に後続しない)単なる改行はwhitespace文字として扱われるだけかと思っていたんだけど。

>>764
改行をLFだけにする(正規化?)のは、raw文字列リテラルに限らない共通の処理なのでは。

766:デフォルトの名無しさん
25/11/18 07:15:20.89 cPKOUaFd0.net
規格が決めてるのはソース中の論理的な「改行」の振る舞いであって、そのバイト表現は知ったこっちゃないって奴じゃないの
知らんけど

767:はちみつ餃子
25/11/18 10:05:52.54 BySuHnsX0.net
>>766
従来はそうだったはずだけど C++23 からは Unicode (UTF-8) のコードポイントの並びで規定されていて、 CRLF が単一の改行に置き換えられる規則が明記されてる。
ただ、 Unicode 系以外の文字コードから処理系定義の規則で Unicode に適当にマッピングするようなのも認めているので実態はあまり変わらない。

768:デフォルトの名無しさん
25/11/18 23:53:18.65 +AochNn2a.net
>>764-765
termcapだかterminfoだかでゴニョゴニョ

769:デフォルトの名無しさん
25/11/19 15:04:12.19 HRoC/CWNM.net
>>768
関係ない


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch