C++相談室 part165 (709レス)
上下前次1-新
629: (アウアウエー Sa6a-VZt9) 2024/12/05(木)20:29 ID:bsPx8jUja(1) AAS
pythonみたいにhoge[:,:,::-1]みたいな描き方したい
operatorオーバーロードの仕方教えてくれ
630: (ワッチョイ 847c-0Hkv) 2024/12/06(金)19:13 ID:Ed4tJtIh0(1) AAS
どうしてもやりたいならユーザー定義リテラル使ってhoge[":;:;::-1"_slice]とか書かせるかなあ
631(1): (ワッチョイ 5e63-64DC) 2024/12/07(土)17:49 ID:hZoDLS6H0(1) AAS
[,]とカンマ演算子の優先順位はどうなるんじゃ……
まあすでに関数の引数部分で似たような状況((, , ,))だから良いのか……
632: はちみつ餃子◆8X2XSCHEME (ワッチョイ bd32-LsAq) 2024/12/07(土)19:05 ID:bmFGOE/o0(1) AAS
>>631
先述 (>>625) の通り [] 内での (丸括弧で囲まない形での) カンマの使用は C++20 から非推奨。
これは変更に対する布石で、 C++23 からカンマは引数の区切りのカンマとして解釈されることになった。
解釈が変わる (互換性が維持されない) 変更なのだが、大量の既存のコードを検証してそれが問題になるような使い方はほとんどない (あっても簡単に迂回できる) と判断された。
633: (ワッチョイ a7ad-7Ydj) 2024/12/08(日)19:55 ID:R/m6cDay0(1) AAS
mdspan でいいんじゃないかと
634(1): 350 (ワッチョイ 9744-3FWJ) 2024/12/30(月)01:24 ID:QjoRUJvQ0(1/2) AAS
>>316
char name[] = "sazaesan";
これ配列リテラルちゃうの?
nameはポインタだが
dc エリアに sazaesan\0 格納されるだろ
635: (ワッチョイ b6e7-F611) 2024/12/30(月)02:23 ID:OlG90g3v0(1) AAS
その話はもうええわ
636: はちみつ餃子◆8X2XSCHEME (ワッチョイ 9732-1Vfr) 2024/12/30(月)03:22 ID:vy8OYYFk0(1) AAS
>>634
> これ配列リテラルちゃうの?
文字列リテラルは配列の一種ではあるが、この場合は配列一般を表すリテラルはないという意味。
(C にはコンパウンドリテラルがあるし、一部の処理系では C++ でも使える拡張があるけど。)
初期化子に現れる波括弧が配列リテラルだと誤解しているらしいことについての指摘なので文字列リテラルも配列リテラルだというのは関係がない。
> nameはポインタだが
いいえ。 name は配列。
> dc エリアに sazaesan\0 格納されるだろ
省1
637: (ワッチョイ 9744-3FWJ) 2024/12/30(月)08:13 ID:QjoRUJvQ0(2/2) AAS
>文字列リテラルは配列の一種ではあるが、この場合は配列一般を表すリテラルはないという意味。
おおっと苦しいねぇw
638(1): (ワッチョイ 9a79-yyCf) 2024/12/31(火)23:26 ID:xpoxeW+N0(1) AAS
>配列リテラル
そもそもこの言葉がおかしい
配列リテラルなんてものは存在しない
リテラルは数値や文字、文字列の変更不可な定数を指す用語で、配列等の変数とは間逆の存在
配列は文字列リテラルとかで初期化はできるがリテラルには分類されない
主にjavascript界隈で平気で配列リテラルなんて説明してるサイトがあるが全部間違い
639(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 9732-1Vfr) 01/01(水)11:07 ID:KjvDobUm0(1) AAS
>>638
英単語としての literal の意味にそぐわなくても、言語仕様でリテラルという用語を割り当てられたならリテラルというしかない。
JavaScript (ECMAScript) のことはよう知らんけど仕様を見たら [] で囲んで配列を表現する文法には ArrayLiteral と書いてあるぞ。
外部リンク[html]:262.ecma-international.org
640: (ワッチョイ 8b01-rRgN) 01/01(水)11:14 ID:MMGltyx80(1) AAS
まぁ言葉の競合なんて稀によくあるし
641: 青木康善 (アウアウウー Sac7-DS50) 01/02(木)03:10 ID:2OQRwfH2a(1) AAS
独習C++今から読みます。
642: はちみつ餃子◆8X2XSCHEME (ワッチョイ 9732-1Vfr) 01/02(木)12:45 ID:dC27qXct0(1/2) AAS
そうか。
643(1): (ワッチョイ 9a79-yyCf) 01/02(木)17:05 ID:ZvjFvgyg0(1) AAS
>>639
そこ見たけどリテラルについては13.2.3 Literalsで定義されてるし
ArrayLiteralで検索したら13.2.4 Array Initializerと書いてあるから、ArrayLiteralはただの誤植だろ
そんなのを根拠にして配列リテラルなんておかしな説明が広まってるのか
644: はちみつ餃子◆8X2XSCHEME (ワッチョイ 9732-mOud) 01/02(木)20:16 ID:dC27qXct0(2/2) AAS
どうだろ?
同じものでも切り口によって呼び名が違うことはあるじゃないの。
たとえば字句的には識別子と呼ばれてるものが構文の上では変数だったり型だったりするわけで。
本当になんの使い分けの意図もなく単なる間違いなんか?
いやまあ、私はよう知らんから本当に間違いなんかも知らんけど。
645: (ワッチョイ 9744-3FWJ) 01/03(金)05:19 ID:TELQMEJN0(1) AAS
>>643
だから
値による Initialize と Literal がどーちがうというんだ
何をこだわってるの?
646(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 9732-mOud) 01/03(金)08:22 ID:N2a/+7s70(1/2) AAS
用語は概念と結び付いてる。
理屈の建て付けが用語に現れているのだから用語の間違いは理屈の理解の誤り。
こだわるべき。
訳の都合とか歴史的事情でわかりにくい変な用語になってるのもよくあることだけどな。
647: はちみつ餃子◆8X2XSCHEME (ワッチョイ 9732-mOud) 01/03(金)15:37 ID:N2a/+7s70(2/2) AAS
常に厳密であるべきとまでは言わないけど、必要なときに説明できる程度にはね。
648: (ワッチョイ 8b01-rRgN) 01/03(金)16:40 ID:nAACv6m40(1) AAS
せやな
上下前次1-新書関写板覧索設栞歴
あと 61 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s