次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part130
http://mevius.2ch.net/test/read.cgi/tech/1490917669/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1478440682/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part131 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 3b96-ov1m)
2017/07/29(土) 11:28:28.97ID:o30VDF4g0236デフォルトの名無しさん (ワッチョイ 09e3-+GDj)
2017/08/22(火) 22:35:33.43ID:uMve0U0S0 >>235
これは正しい
これは正しい
237デフォルトの名無しさん (ブーイモ MMab-s4kG)
2017/08/22(火) 22:36:16.75ID:ONlIaE3KM おっと変数が抜けた
238デフォルトの名無しさん (ワッチョイ 8123-jLVh)
2017/08/22(火) 22:58:36.57ID:D8nSL4rC0 >>233
逆にそれが入らない原因なのでは?
軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
見た目分かるようにしろってのがC++の流儀なんだろ。
俺はあった方がいいと思うけどね。
速度チューニングでこの手のマイクロマネージメントは全く意味がないから。
逆にそれが入らない原因なのでは?
軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
見た目分かるようにしろってのがC++の流儀なんだろ。
俺はあった方がいいと思うけどね。
速度チューニングでこの手のマイクロマネージメントは全く意味がないから。
239デフォルトの名無しさん (ワッチョイ 93c5-8P7d)
2017/08/22(火) 22:59:26.20ID:UHwuUWMX0 publicなメンバが一つもなかったらそもそもインスタンスを構築できないのでは…
240デフォルトの名無しさん (ワッチョイ 93c5-8P7d)
2017/08/22(火) 23:02:04.62ID:UHwuUWMX0 >>238
メンバ変数の公開よりもアクセサーを設けてインライン展開してもらう方がC++の思想的に望ましいのでは…
メンバ変数の公開よりもアクセサーを設けてインライン展開してもらう方がC++の思想的に望ましいのでは…
241239 (ワッチョイ 93c5-8P7d)
2017/08/22(火) 23:02:59.41ID:UHwuUWMX0 スマンfriendを使えば良いのか…
242デフォルトの名無しさん (ワッチョイ 817f-jLVh)
2017/08/22(火) 23:13:00.45ID:zLx3ukqP0 >軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
>見た目分かるようにしろってのがC++の流儀なんだろ。
C++って、それを判断するのが最も困難な部類の言語だと思うが。
>見た目分かるようにしろってのがC++の流儀なんだろ。
C++って、それを判断するのが最も困難な部類の言語だと思うが。
243デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/22(火) 23:20:46.21ID:NIldwpVs0 set/get用のデータメンバをちまちま用意するという
狭い考えに限定してきやがる思考妨害アイテムは無用
狭い考えに限定してきやがる思考妨害アイテムは無用
244デフォルトの名無しさん (ワッチョイ 8123-jLVh)
2017/08/22(火) 23:28:17.57ID:D8nSL4rC0245デフォルトの名無しさん (オッペケ Sr4d-T01/)
2017/08/22(火) 23:37:15.06ID:+MsUtw+Or ほう、ではこのプログラムがC++17で何回ムーブが行われるかわかるかね?
auto f() {
struct C{int m;};
return C{};
}
auto c = f();
auto f() {
struct C{int m;};
return C{};
}
auto c = f();
246デフォルトの名無しさん (ワッチョイ 93aa-jLVh)
2017/08/22(火) 23:37:39.41ID:CYQ4BtpJ0 はいはい属性の抽象化属性の抽象化
247デフォルトの名無しさん (ワッチョイ 93aa-jLVh)
2017/08/22(火) 23:39:19.18ID:CYQ4BtpJ0 >>245
0回
0回
248デフォルトの名無しさん (オッペケ Sr4d-T01/)
2017/08/22(火) 23:41:09.40ID:+MsUtw+Or 残念
0回または1回
因みに確認のためにムーブコンストラクターを追加すると0回に変わる
0回または1回
因みに確認のためにムーブコンストラクターを追加すると0回に変わる
249デフォルトの名無しさん (オッペケ Sr4d-T01/)
2017/08/22(火) 23:49:21.67ID:+MsUtw+Or ということで、見た目で判断することは難しいのではないかと
250デフォルトの名無しさん (ワッチョイ 8123-jLVh)
2017/08/23(水) 00:09:19.34ID:CuDbJhab0 つかお前ら他言語使ってないだろ。
逆に言えばC++はその程度の精度での見積もりが出来る、ということなんだよ。
GC言語なんてGCがどこで走るか予測不能だから、実行時間の保証なんて全く出来ないし、
JIT言語はJIT側にその最適化が入っているかどうかで全く速度が変わってしまう。
つまりJava/C#/JavaScript等はその精度での見積もりはそもそも不可能なんだよ。
それとは別に、C++はその辺の仕組みがかなり複雑になっているのは認めるが、
それでも他言語と比べたら精度高く見積もれる方だよ。
getterを使った場合の問題は、それが見積もりにくくなることと、
あまりに多用するとどこで処理しているのか分かりにくくなる点だが、
まあ、適切に使っている限りはかなり使える機能だから、有った方が便利なんだけどね。
だから普通に考えれば「貪欲」なら当然入れるべきだし、
むしろラムダより先に入れるべきだが、入れないんだから何か引っかかってんでしょ多分。
逆に言えばC++はその程度の精度での見積もりが出来る、ということなんだよ。
GC言語なんてGCがどこで走るか予測不能だから、実行時間の保証なんて全く出来ないし、
JIT言語はJIT側にその最適化が入っているかどうかで全く速度が変わってしまう。
つまりJava/C#/JavaScript等はその精度での見積もりはそもそも不可能なんだよ。
それとは別に、C++はその辺の仕組みがかなり複雑になっているのは認めるが、
それでも他言語と比べたら精度高く見積もれる方だよ。
getterを使った場合の問題は、それが見積もりにくくなることと、
あまりに多用するとどこで処理しているのか分かりにくくなる点だが、
まあ、適切に使っている限りはかなり使える機能だから、有った方が便利なんだけどね。
だから普通に考えれば「貪欲」なら当然入れるべきだし、
むしろラムダより先に入れるべきだが、入れないんだから何か引っかかってんでしょ多分。
251デフォルトの名無しさん (ワッチョイ 93aa-jLVh)
2017/08/23(水) 00:16:20.92ID:Cw77BvbJ0 >>248
?
?
252はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1315-oL0b)
2017/08/23(水) 02:11:33.58ID:wuLlGfOo0 getter がただの変数アクセスに被せてあるだけならまともなコンパイラなら最適化で消えるから速度的なペナルティはゼロだよ。
253デフォルトの名無しさん (ワッチョイ 817f-jLVh)
2017/08/23(水) 07:57:53.52ID:KTb6BBkr0 a = 1;
こんなコード片で、aの型がプリミティブ型かconstr(int)/operator=(int)を持つクラスなのかによって
実際に実行される処理内容が違う時点で
>軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
>見た目分かるようにしろってのがC++の流儀なんだろ。
そんなものないとわかるだろう。
それににしても、そこからGCのオーバーヘッドに話が飛ぶのはさすがにアクロバティックすぎるw
実実行時間の話なら、マルチスレッドの非リアルタイムOS上のプログラムはどれも正確な見積もりなどできん。
こんなコード片で、aの型がプリミティブ型かconstr(int)/operator=(int)を持つクラスなのかによって
実際に実行される処理内容が違う時点で
>軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
>見た目分かるようにしろってのがC++の流儀なんだろ。
そんなものないとわかるだろう。
それににしても、そこからGCのオーバーヘッドに話が飛ぶのはさすがにアクロバティックすぎるw
実実行時間の話なら、マルチスレッドの非リアルタイムOS上のプログラムはどれも正確な見積もりなどできん。
254デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/23(水) 08:29:43.04ID:kvkWqUxa0 プリミティブ型? ああJava訛りね、C++用語はISO/IEC14882:2011 3.9.1に規定あるから
a = 1; がビルトインの代入か、トリビアルのoperator=か、
ユーザー定義のoperator=か、コンストラクタを呼び出すか、
コピーかムーブか、読めない人はC++には向いてないので無理しなくていいよ
要するにアセンブラ苦手なんだろ
マルチスレッドでもタイムクリティカルとか割り込みマスクとかあるしね
別にRTOSに限ったことじゃなく
a = 1; がビルトインの代入か、トリビアルのoperator=か、
ユーザー定義のoperator=か、コンストラクタを呼び出すか、
コピーかムーブか、読めない人はC++には向いてないので無理しなくていいよ
要するにアセンブラ苦手なんだろ
マルチスレッドでもタイムクリティカルとか割り込みマスクとかあるしね
別にRTOSに限ったことじゃなく
255デフォルトの名無しさん (ワッチョイ 5bea-eC16)
2017/08/23(水) 11:11:46.28ID:KtaXakwM0256デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/23(水) 12:25:37.91ID:kvkWqUxa0 C++を批判するには
おまえ足んねーものが
多すぎつってんだよ
おまえ足んねーものが
多すぎつってんだよ
257デフォルトの名無しさん (ワッチョイ 2baa-PF2c)
2017/08/23(水) 18:58:23.34ID:HlA0mWJs0 C++ 標準委員会のドワンゴ江添は、職務質問の手荷物検査を拒否したら、
警官10人に、現場で1時間半以上、拘束されたらしい
捜査でもない、任意の行政処分なのにw
それで東京都を訴えた
警官10人に、現場で1時間半以上、拘束されたらしい
捜査でもない、任意の行政処分なのにw
それで東京都を訴えた
258デフォルトの名無しさん (ドコグロ MMb3-x4Vn)
2017/08/23(水) 19:16:52.69ID:Rd2CDMDCM >>254
> a = 1; がビルトインの代入か、トリビアルのoperator=か、
> ユーザー定義のoperator=か、コンストラクタを呼び出すか、
> コピーかムーブか、読めない人
それがわかったからと言ってなんになるんだ?
定義が常に読めるとは限らんだろ
> 要するにアセンブラ苦手なんだろ
逆アセしてでも読めとか言ってるなら単なる老害のアホ
> a = 1; がビルトインの代入か、トリビアルのoperator=か、
> ユーザー定義のoperator=か、コンストラクタを呼び出すか、
> コピーかムーブか、読めない人
それがわかったからと言ってなんになるんだ?
定義が常に読めるとは限らんだろ
> 要するにアセンブラ苦手なんだろ
逆アセしてでも読めとか言ってるなら単なる老害のアホ
259デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/23(水) 22:25:37.71ID:kvkWqUxa0260はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0a15-2x4P)
2017/08/24(木) 00:52:21.94ID:MQSUCcmg0 そうか。
261デフォルトの名無しさん (ドコグロ MM72-+ULf)
2017/08/24(木) 07:16:54.28ID:uGClSq1gM 老害だと思ってたら基地害だったと言うオチかよ w
262デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/24(木) 07:27:59.03ID:kJk0ElnZ0 熱いなプロパティ
はやく標準化されればいいのに
はやく標準化されればいいのに
263デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/24(木) 10:04:23.28ID:VdsYrxcW0 いらね
264デフォルトの名無しさん (ワッチョイ ca32-2x4P)
2017/08/24(木) 11:04:12.57ID:h3Bt5TkH0 プロパティじゃないと出来ないことってなになの
265デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/24(木) 11:21:59.10ID:ItTZCijS0 見た目だけじゃね?
266デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/24(木) 11:45:56.43ID:VdsYrxcW0 IDEがやれば済むこと
わざわざ言語に入れる必要なし!
わざわざ言語に入れる必要なし!
267デフォルトの名無しさん (ドコグロ MM72-PGrp)
2017/08/24(木) 12:19:36.07ID:TzTK1OIfM メンバ変数と関数の呼び出し統一化。
いらんというのは同意。
いらんというのは同意。
268デフォルトの名無しさん (ワッチョイ 8642-mY/i)
2017/08/24(木) 14:05:25.76ID:5zDLSTW70 オブジェクトの状態と操作の区別
関数でも代用できてしまうけど、変数のように扱えるってのが大きい
変数のような使い方で処理を挟める、これはPublicなメンバ変数では出来ない
関数でも代用できてしまうけど、変数のように扱えるってのが大きい
変数のような使い方で処理を挟める、これはPublicなメンバ変数では出来ない
269デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/24(木) 14:20:51.13ID:VdsYrxcW0 できるよバーカ
C++98より前、ARM C++の時代から
C++98より前、ARM C++の時代から
270デフォルトの名無しさん (ワッチョイ c6d7-l/E4)
2017/08/24(木) 17:42:35.34ID:hLrI3YRl0 たしかに、operator()とoperator=があればできそうではある
271デフォルトの名無しさん (ワッチョイ dd6d-oL0n)
2017/08/24(木) 18:28:45.68ID:dK94ZXMf0 >>269
どうやって?コードよろ
どうやって?コードよろ
272デフォルトの名無しさん (ワッチョイ c6d7-l/E4)
2017/08/24(木) 18:48:22.87ID:hLrI3YRl0 ARMだとテンプレートないから、メンバ変数にしたい型ごとにラッパークラス作らないいけないから大変そう
273デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 18:52:57.63ID:4nWMkj3x0 質問ですが
std::string str("abcdefghi"); // (*1)
str.resize(8); // (*2)
size_t len = strlen(str.c_str()); // <-- "abcdefgh\0"の長さが返る (*3)
となるのですが、(*3)の時点でできる終端NUL文字"\0"って、
いつのタイミングでどこの領域に確保されるのですか、
std::string str("abcdefghi"); // (*1)
str.resize(8); // (*2)
size_t len = strlen(str.c_str()); // <-- "abcdefgh\0"の長さが返る (*3)
となるのですが、(*3)の時点でできる終端NUL文字"\0"って、
いつのタイミングでどこの領域に確保されるのですか、
274デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 18:54:42.67ID:4nWMkj3x0 訂正
×:、(*3)の時点でできる
○:、(*3)の時点でできている
×:、(*3)の時点でできる
○:、(*3)の時点でできている
275デフォルトの名無しさん (ワッチョイ c6d7-l/E4)
2017/08/24(木) 19:23:39.06ID:hLrI3YRl0 ARMテンプレートあったわ。失礼
276デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/24(木) 20:00:39.22ID:kJk0ElnZ0277デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/24(木) 20:11:18.34ID:VdsYrxcW0278デフォルトの名無しさん (ワッチョイ 4aaf-gEMG)
2017/08/24(木) 20:14:15.85ID:G5OnAPYO0 >>273
*1の時点であるよ
*1の時点であるよ
279デフォルトの名無しさん (ワッチョイ caaa-vgeI)
2017/08/24(木) 20:17:27.08ID:LSCbdyW40280デフォルトの名無しさん
2017/08/24(木) 20:39:47.98ID:oFKMCsHnd 🐒
281デフォルトの名無しさん (ドコグロ MM21-+ULf)
2017/08/24(木) 21:28:30.26ID:YTCHjYE8M >>273
(*2) の時点で新規領域に abcdefgh をコピーしてその後に \0 を置く
(*2) の時点で新規領域に abcdefgh をコピーしてその後に \0 を置く
282デフォルトの名無しさん (ワッチョイ 4aaf-gEMG)
2017/08/24(木) 21:29:59.02ID:G5OnAPYO0 新規領域もコピーもないでしょ
283デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 21:33:49.00ID:4nWMkj3x0 コピーが生じないんだとしたら、
std::string::size()はいつも1バイトだけサバを読んだ値を返すってこと?
std::string::size()はいつも1バイトだけサバを読んだ値を返すってこと?
284デフォルトの名無しさん (ワッチョイ 4aaf-gEMG)
2017/08/24(木) 21:34:29.37ID:G5OnAPYO0 せやで
285デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 21:35:38.05ID:4nWMkj3x0 なのか
286270 (スッップ Sdea-l/E4)
2017/08/24(木) 22:02:35.81ID:oFKMCsHnd プロパティはこれじゃアカンの?
https://wandbox.org/permlink/a1fqVzyPCHgFeNjc
https://wandbox.org/permlink/a1fqVzyPCHgFeNjc
287デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 22:12:47.64ID:4nWMkj3x0 Windows Phoneの開発で使うC++/CXにはpropertyが構文でサポートされているで
ていうかpropertyがあることが存在意義な感じ?(ネイティブなC++は別にあってそれはそれで利用可能
ていうかpropertyがあることが存在意義な感じ?(ネイティブなC++は別にあってそれはそれで利用可能
288デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 22:15:25.24ID:4nWMkj3x0 データメンバ直アクセスでなくてpropertyにすると良いことがあるというのは
マーシャリングを裏で勝手にやって来る点
マーシャリングを裏で勝手にやって来る点
289デフォルトの名無しさん (ドコグロ MM72-PGrp)
2017/08/24(木) 22:28:47.63ID:TzTK1OIfM メンバ関数でいいじゃん。ということだろ。
290デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/24(木) 22:34:36.32ID:4nWMkj3x0 |
| ('A`) .oO(名前考えるのマンドクセ
/ ̄ノ( ヘヘ ̄ ̄ ̄
/
| ('A`) .oO(名前考えるのマンドクセ
/ ̄ノ( ヘヘ ̄ ̄ ̄
/
291デフォルトの名無しさん (ドコグロ MM72-PGrp)
2017/08/24(木) 22:54:26.67ID:TzTK1OIfM 0変数:getter, 1変数:setter, 尻尾付き:メンバ変数
とかは良くやるな
とかは良くやるな
292デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/25(金) 00:06:28.73ID:w8QRZZ7K0293デフォルトの名無しさん (ワッチョイ b632-+Jgu)
2017/08/25(金) 00:10:22.03ID:hVYhQQjP0 >>268
オペレーターのオーバーライドとにたような感じになると思うけど、その挟み込む処理の重さが隠蔽されてしまうという問題があって、一般には、非推奨だとおもうのだけど今はかわってきてるのかね?
たとえば、代入しているだけだとおもったら、実はファイルアクセスまでしてたとかかな。
オペレーターのオーバーライドとにたような感じになると思うけど、その挟み込む処理の重さが隠蔽されてしまうという問題があって、一般には、非推奨だとおもうのだけど今はかわってきてるのかね?
たとえば、代入しているだけだとおもったら、実はファイルアクセスまでしてたとかかな。
294デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/25(金) 00:19:32.01ID:4dE2HuPo0 >>293
>258理論によれば、老害じゃなければ一目で処理の重さがわかるんじゃね
もっとも処理の重さに関するC++の不透明さに警戒を抱くことを老害とするならば、
カーニハンやリッチーも老害にカテゴライズされてしまうが
>258理論によれば、老害じゃなければ一目で処理の重さがわかるんじゃね
もっとも処理の重さに関するC++の不透明さに警戒を抱くことを老害とするならば、
カーニハンやリッチーも老害にカテゴライズされてしまうが
295デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/25(金) 00:49:30.90ID:w8QRZZ7K0 >>294
K&Rというか生Cが嫌っている理由は「余計なことをするな」だ。
適切に使っている限りC++は不透明ではない。それでも彼等は嫌うだろ。
>>293
横だが結局は使い方次第だよ。C++はいくらでも読みにくいコードを書けるから。
ただ、きちんと使えば有用な機能だよ。
演算子オーバーロードについてはgoogleは「慎重にやれ」だね。
https://ttsuki.github.io/styleguide/cppguide.ja.html#Operator_Overloading
どうでもいいが、何故演算子は「オーバーロード」なんだ?
言われてみれば「オーバーライド」の方が適切な気がする。
K&Rというか生Cが嫌っている理由は「余計なことをするな」だ。
適切に使っている限りC++は不透明ではない。それでも彼等は嫌うだろ。
>>293
横だが結局は使い方次第だよ。C++はいくらでも読みにくいコードを書けるから。
ただ、きちんと使えば有用な機能だよ。
演算子オーバーロードについてはgoogleは「慎重にやれ」だね。
https://ttsuki.github.io/styleguide/cppguide.ja.html#Operator_Overloading
どうでもいいが、何故演算子は「オーバーロード」なんだ?
言われてみれば「オーバーライド」の方が適切な気がする。
296デフォルトの名無しさん (ワッチョイ 8642-mY/i)
2017/08/25(金) 02:45:57.11ID:g+9HiqWa0 >>293
それは言語機能の問題じゃなく実装の問題じゃない?
propertyってメンバ変数がどうなっているかに関わらずオブジェクトの状態を表すもの
言語機能の話をしているのであって
既存の機能をやりくりして似たことは出来るって言われてもって感じ
それは言語機能の問題じゃなく実装の問題じゃない?
propertyってメンバ変数がどうなっているかに関わらずオブジェクトの状態を表すもの
言語機能の話をしているのであって
既存の機能をやりくりして似たことは出来るって言われてもって感じ
297デフォルトの名無しさん (ワッチョイ ed6f-Snnh)
2017/08/25(金) 04:18:10.56ID:4FaT6XJy0 「処理の重さを隠蔽するな」なんて思想がそもそもあるのかね?
298デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/25(金) 05:23:39.04ID:RGmsOxnq0299デフォルトの名無しさん (ワッチョイ 2aef-M52T)
2017/08/25(金) 06:02:53.19ID:sj2/Y28y0 property ってパブリック変数とどう違うの?
300デフォルトの名無しさん (ドコグロ MM72-+ULf)
2017/08/25(金) 06:53:00.86ID:s9vD7wq8M301デフォルトの名無しさん (ドコグロ MM72-+ULf)
2017/08/25(金) 06:55:30.90ID:s9vD7wq8M302デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/25(金) 07:02:27.63ID:g3SOHHgl0 オーバーロードってモモンガ
303デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/25(金) 07:24:58.66ID:crVCqQ4J0304デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/25(金) 07:49:18.88ID:4dE2HuPo0 >>300
>>254〜>>258の流れをa=1;の実行速度が一目見てわかるのかどうかという問題提起の意味に解釈すた、
パフォーマンスを読みきるには何の言語であれボトルネック(ループ回数×1回の実行時間が最大の処理)の特定が必要だが
C++は演算子のオーバーロードとかインライン展開とかテンプレートがそれ以前の障害として立ちはだかる点がCより重症
パフォーマンスを上げるための手段を豊富に提供してプログラムを書く人の選択に委ねているみたいな?
つまりC++はソースコードのROM専はお断りな言語
>>295
スマン言いたかったのはK&Rではなくてカーニハンとロブ・パイクやったorz
『プログラミング作法』の第7章「性能」のところにC++の特性について(CやJavaとの比較が)書かれていた希ガス、
(目次)ttps://tatsu-zine.com/books/practice-of-programming
ちな本は売ったから手元に無い
>>297
本来のK&Rがまさにそれなのでは…
Unixの移植目的で作られた言語なので、移植性と意図通りのアセンブリコードに落ちること
(ソースコードからアセンブリコードが透けて見えること)の両立が着手時点の第一優先だったはず
故に生ポインタが言語の前面に出てきてインクリメント/デクリメントがそれぞれ2種類あった
>>254〜>>258の流れをa=1;の実行速度が一目見てわかるのかどうかという問題提起の意味に解釈すた、
パフォーマンスを読みきるには何の言語であれボトルネック(ループ回数×1回の実行時間が最大の処理)の特定が必要だが
C++は演算子のオーバーロードとかインライン展開とかテンプレートがそれ以前の障害として立ちはだかる点がCより重症
パフォーマンスを上げるための手段を豊富に提供してプログラムを書く人の選択に委ねているみたいな?
つまりC++はソースコードのROM専はお断りな言語
>>295
スマン言いたかったのはK&Rではなくてカーニハンとロブ・パイクやったorz
『プログラミング作法』の第7章「性能」のところにC++の特性について(CやJavaとの比較が)書かれていた希ガス、
(目次)ttps://tatsu-zine.com/books/practice-of-programming
ちな本は売ったから手元に無い
>>297
本来のK&Rがまさにそれなのでは…
Unixの移植目的で作られた言語なので、移植性と意図通りのアセンブリコードに落ちること
(ソースコードからアセンブリコードが透けて見えること)の両立が着手時点の第一優先だったはず
故に生ポインタが言語の前面に出てきてインクリメント/デクリメントがそれぞれ2種類あった
305デフォルトの名無しさん (ワッチョイ c6ba-E8CI)
2017/08/25(金) 08:42:44.14ID:XasQqnRJ0 >>298
いや、new もオーバーロードでしょ。
いや、new もオーバーロードでしょ。
306デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/25(金) 08:51:39.36ID:crVCqQ4J0 newはオペレーターじゃないの?
307デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/25(金) 08:53:26.21ID:mWX/padLd いやいや、newは新しいって意味
308デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/25(金) 09:08:17.73ID:crVCqQ4J0 新しくメモリのようなものを持って来るってことでしょ。
言語上ではオペレーターじゃないの?
言語上ではオペレーターじゃないの?
309デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/25(金) 09:09:11.80ID:mWX/padLd オペレーターかどうかの議論なんて誰もしてない
310デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/25(金) 09:11:08.77ID:crVCqQ4J0 オペレータはオーバーロードするもんじゃね?
まぁいいか。
まぁいいか。
311デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/25(金) 09:52:04.11ID:RGmsOxnq0312デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/25(金) 09:54:07.34ID:mWX/padLd 「本当は」とは?
C++の規格?
本来の英語の意味?
C++の規格?
本来の英語の意味?
313デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/25(金) 09:55:05.21ID:mWX/padLd 突然「本当は」とか書いても、どういう意味でどういう意図で書いたかなんてわからんぞ
314デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/25(金) 10:21:51.52ID:RGmsOxnq0 わかんなくていい
バカ以外とさえ話せれば
バカ以外とさえ話せれば
315デフォルトの名無しさん (ドコグロ MM72-+ULf)
2017/08/25(金) 12:45:56.08ID:s9vD7wq8M316デフォルトの名無しさん (ブーイモ MMf1-E8CI)
2017/08/25(金) 12:58:22.38ID:BrjL74izM >>311
いや、グローバルのオペレーターに対して、型特化を新設するんだから、newも代入も、オーバーロードでいいんだよ。って話。
c++の実現方法(クラス内定義)でイメージしちゃうから、オーバーライドと思っちゃう気持ちはわかるけど。
いや、グローバルのオペレーターに対して、型特化を新設するんだから、newも代入も、オーバーロードでいいんだよ。って話。
c++の実現方法(クラス内定義)でイメージしちゃうから、オーバーライドと思っちゃう気持ちはわかるけど。
317デフォルトの名無しさん (ワッチョイ c6d7-l/E4)
2017/08/25(金) 13:22:21.09ID:2fWpITWD0 operatorを仮想関数にしたことないや
318はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0a15-2x4P)
2017/08/25(金) 13:27:32.63ID:a70Vb5yP0 そうか。
319デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/25(金) 14:12:03.69ID:RGmsOxnq0 ::operator newは新設か?
ユーザー定義するとビルトインを置き換えるだろ
ユーザー定義するとビルトインを置き換えるだろ
320デフォルトの名無しさん (ワッチョイ caaa-vgeI)
2017/08/25(金) 14:14:35.88ID:11RxMW0L0 >>319
だからオーバーライドだというの?
だからオーバーライドだというの?
321デフォルトの名無しさん (ワッチョイ c67a-RUyu)
2017/08/25(金) 21:42:16.87ID:0c3f6Usc0322デフォルトの名無しさん (ワッチョイ a511-l/E4)
2017/08/25(金) 22:11:25.23ID:IbGqUCQq0 operatorをオーバーライドしてる人いるみたいだけど、operatorを仮想関数にするのってどういう時なの?
323片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/25(金) 22:17:04.37ID:M7y+0IYNd >>322
ポインタから多態を利用じゃねーの?
ポインタから多態を利用じゃねーの?
324片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/25(金) 22:28:47.46ID:M7y+0IYNd ポインタじゃなくてC++参照ね。
325デフォルトの名無しさん (ワッチョイ a511-l/E4)
2017/08/25(金) 22:37:18.66ID:IbGqUCQq0 >>323
具体的には何のoperatorをオーバーライドしてるの?
具体的には何のoperatorをオーバーライドしてるの?
326デフォルトの名無しさん (ワッチョイ caaa-vgeI)
2017/08/25(金) 22:39:23.28ID:11RxMW0L0 遺伝子
327片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/25(金) 22:45:02.30ID:M7y+0IYNd operator==を仮想化したら、多態性が必要な状況であれこれはかどるだろう。
Numberクラスを基底として、RealクラスやらComplexクラスを作ったりしたら、同値確認にoperator==を使いたくなるだろう。
Numberクラスを基底として、RealクラスやらComplexクラスを作ったりしたら、同値確認にoperator==を使いたくなるだろう。
328デフォルトの名無しさん (ワッチョイ 8642-mY/i)
2017/08/25(金) 22:47:00.20ID:g+9HiqWa0 男はオーバーロード
女はオーバーライド
女はオーバーライド
329デフォルトの名無しさん (ワッチョイ caaa-vgeI)
2017/08/25(金) 23:16:33.27ID:11RxMW0L0 >>327
それってダブルディスパッチの問題起きないの?
それってダブルディスパッチの問題起きないの?
331デフォルトの名無しさん (ワッチョイ caaa-vgeI)
2017/08/25(金) 23:44:46.18ID:11RxMW0L0 ?
332デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/25(金) 23:58:05.92ID:w8QRZZ7K0333デフォルトの名無しさん (ワッチョイ c6ba-E8CI)
2017/08/26(土) 00:07:55.23ID:NVd9gXan0 >>327
RealクラスとComplexクラスを比較した時の振る舞いが直感的じゃなくね?
RealクラスとComplexクラスを比較した時の振る舞いが直感的じゃなくね?
334デフォルトの名無しさん (オッペケ Sr6d-9IFt)
2017/08/26(土) 00:16:33.84ID:m69mKCvsr はてoverloadとoverrideは排他的な存在だっただろうか
ちなみに規格で::newはreplace, displace
overrideとは言わない
ちなみに規格で::newはreplace, displace
overrideとは言わない
335片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/26(土) 00:17:51.21ID:HPL6ZAk0d >>333
その場合はオーバーロードよりも強力なダブルディスパッチを使うのが妥当だった。すまね。
その場合はオーバーロードよりも強力なダブルディスパッチを使うのが妥当だった。すまね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】上田綺世の活躍は「一過性」 15戦18発も…オランダ英雄は懐疑的な姿勢「確信に至っていない」 [ゴアマガラ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【未成年NISA】つみたて枠、18歳未満は600万円上限 12歳で引き出し可能 [蚤の市★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ [597533159]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ180
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 高市早苗、定数削減法案廃案なら衆議院解散へ 郵政解散2ndキタ━━━━(゚∀゚)━━━━!! [175344491]
- X民「高市さん擬人化してみた。可愛すぎる」10万いいね [165981677]
