X



C++相談室 part131 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 3b96-ov1m)
垢版 |
2017/07/29(土) 11:28:28.97ID:o30VDF4g0
次スレを立てる時は本文の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
0172166 (ワッチョイ 5ba6-T01/)
垢版 |
2017/08/19(土) 20:37:29.73ID:xqVOePdU0
>>170
やっぱり右辺値参照へのキャストか
左辺値参照ぽい動きなんで質問してみた。ありがと
>>171
俺にはforwardはまだ早いってことスね
まずforwardなしでもう少し考えてみるわ
0173デフォルトの名無しさん (ワッチョイ 93aa-jLVh)
垢版 |
2017/08/19(土) 22:34:08.72ID:s/7RraD70
>>166
もとの test という関数が右辺値、左辺値どっちでも引数に取れる、そして std::forward でそのまま転送している
f がとる引数の型は test がとった引数と同じ。
つまり答えは実引数次第だ。
0180デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 14:59:30.48ID:sGdhnhOm0
トーバル君は単に自分のニーズに最適な言語はCと言っているだけで
他の言語がどうなろうと知ったこっちゃないでしょ
それを周りのアフォどもが色々押しつけに来ることに時折ブチキレるだけで
0181デフォルトの名無しさん (ワッチョイ 994d-jLVh)
垢版 |
2017/08/20(日) 15:24:25.28ID:4v9fraNU0
スキルの差によって読める、読めないの差がありすぎてもはや言語としての体をなしていない。
コンパイラによってもコンパイルできる、できないの差も激しい。大きなプロジェクトを管理する側はキレて当然。
癌のように誰も望んでない仕様拡張が続けられている。
0184デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 16:05:02.55ID:sGdhnhOm0
>>181
誰も望んでいない仕様拡張?
autoは? range-based-forは? R"リテラルは?
initializer_listは? ラムダ式は? template parameter packは?
<random>は? shared_ptrは? <regex>は? <system_error>は?
0185デフォルトの名無しさん (ワッチョイ 817f-jLVh)
垢版 |
2017/08/20(日) 16:10:46.08ID:H9uxxda60
>>181
ふつう、どの規格を使うかとか、場合によってはどの開発環境のどのバージョンを使うかまで
プロジェクトで規定するものだろう。
決めたことと違うコードを混ぜようとするメンバーがいたりしたらキレてもいいが。
0186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1315-oL0b)
垢版 |
2017/08/20(日) 16:14:30.65ID:ikEvsZIR0
少なくとも個別の提案はプログラムが読みやすくなるし楽になる方向なんよね。
だからまぁ、 >>181 の言い分にある「誰も望んでない」という言説には違和感があるな。
嫌だという人がいるのはわからんでもないが、
勝手にユーザ全体の意見を代表してしまうやつは単にクズなので、
誰も耳をかさないよ。
0188デフォルトの名無しさん (ワッチョイ 8123-jLVh)
垢版 |
2017/08/20(日) 16:41:18.86ID:gPEOCHBy0
>>181
> スキルの差によって読める、読めないの差がありすぎてもはや言語としての体をなしていない。
日本語(自然言語)でも同じだろ。
馬鹿と天才でおなじ結果(コード)にしかならない、という方が問題だ。
それが天才側に揃っていれば理想的だが、実際は馬鹿側に揃うわけだし。

>>186
> 少なくとも個別の提案はプログラムが読みやすくなるし楽になる方向なんよね。
これは同意だが、問題は一部が本質的なところ(骨組み)まで変えられる程な点だろ。
現実的には>>185のようにプロジェクトリーダーが何を使うか厳密に決めればいい話で、
Linuxの場合はCだ、って言うんだから他の奴が布教しなければ丸く収まる話だ。

とはいえ通常製品の場合は「何でも出来る=何にも使えない」ではあるのだが、
C++の場合は半製品(製品を作る道具)ではあるし、
実際、機能はあった方が便利だったりするので、(使う側がどこまで使うか決めればいいだけ)
プロジェクトリーダーがしっかりしていれば、現在の貪欲な拡張方向も悪くない。
「全部の機能を使わないといけない」と信じている馬鹿と初心者は混乱するだろうけどね。
0190デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 18:05:26.65ID:sGdhnhOm0
>>188
馬鹿側に揃えるポリシーを見事なまでにやってのけた言語と言えば。。。
IDENTIFICATION DIVISION.
再帰できない、ダミーセクションできない、動的記憶ない、オラこんな村いやだ♪

で、その結果なにが起きたか。。。
エロパブの嬢がどこかで見覚えのある顔だと思ったら、うわあ(kwskはガン無視します)
0191デフォルトの名無しさん (ワッチョイ 8123-jLVh)
垢版 |
2017/08/20(日) 18:47:40.43ID:gPEOCHBy0
>>190
COBOLの事か?だとするとあれは試行錯誤の結果だ。非難されるべき物でもない。
そもそもあの時代の言語は再帰出来ないのも多かった。Fortran77もBASICもそうだろ。

俺が思うに、第一世代言語(C以前)は「プログラミングとはこうあるべき」、
つまり、プログラミング自体を規定しようとしている。

COBOL:自然言語の仕様書がそのままソースになるべき
C:所詮アセンブラ
smalltalk:オブジェクト間のメッセージングこそが真の未来
Lisp:ラムダこそ真理
BASIC:馬鹿でも使えることが重要
Fortran:所詮計算機だろ

で、C以外が全部糞だったのでCで統一された。
当然第二世代言語はCの後継で、C++/Java/C#のような面子になる。
とはいえ、COBOLの方向性は間違いでもないよ。
ソース自体が可読性のあるドキュメントであるべき、ってのは今でも理想だろ。
0192デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 19:00:58.06ID:sGdhnhOm0
>>191
BASICは再帰できたぞ
FORTRANを実装できないマシン用に作られた縮小版で、
でもFORTRANより新しく作られた分、改良が図られていた
そのうちの、すべての行に行番号というのが賛否両論だった
当時初心者だった俺にとってはあれがラベルの概念の入り口になってくれたが
1桁KBのパーコンで構造化などという寝ぼけた老害たちがGOTOがどうたら言ってた
あ、嫁が呼んでるw じゃあな
0194デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 19:39:46.63ID:sGdhnhOm0
メインフレーム用の一部の言語が再帰できないのは
当時のS/370がスタックのないアーキテクチャだったからだ
逆にBASICが実装された多くのPCではCPがにスタックを持っていた
なので全変数がグローバルなのでやりにくいができるにはできた
俺もBASICでの再帰は大道芸の域を出ることがなく
実用上の手の内に入ったのはCからだった
0195デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 19:45:06.60ID:sGdhnhOm0
s/CP/CPU/

CPじゃ制御プログラムだねw
0196デフォルトの名無しさん (ワッチョイ 8123-jLVh)
垢版 |
2017/08/20(日) 21:07:10.22ID:gPEOCHBy0
>>194
> 全変数がグローバルなのでやりにくいができるにはできた
これは一般的には出来るとは言わない。
再帰が出来る=関数ローカルの変数が定義出来る、だよ。
変数共通で突っ込むのは今なら「再入」と呼ばれる物に近く、
これは言語として云々ではなく、対応する構造にするかどうかだけ。

また、CPUのスタック操作命令は高速化に寄与するだけであって、
無ければエミュレートすればいいだけだろ。
その論法だとスタック操作命令がないCPUではC言語を実装出来ないことになるが、
これはないだろ。
(S/370上のC言語実装も無いとは思えないし)
0197デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 21:48:19.43ID:sGdhnhOm0
>>196
そこは俺とは見解が違うね
再帰の定義はサブルーチンの中からそのサブルーチンを呼び出すことで、
それをやりやすく補助する存在は本質じゃない
なのでスタックですら再帰の本質ではない
マシンによってはサブルーチンのネストが6層までとか限定されていて
それは何かというとリンクレジスタの個数でありスタックじゃない
再入は共通変数なんか使わないし、使ったらRENTじゃなくなる
メインフレームの流儀ではいちいちGETMAINとかね
メインフレーム上のCの実装は、俺が目撃したのはS/370じゃなく
ESA/370だったけどいちいちGETMAINはしてなかった
0198デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/20(日) 22:03:55.37ID:sGdhnhOm0
秀和の解析本にはBASICのくせにunwindがあるぞってなのが載ってたね
0199デフォルトの名無しさん (ワッチョイ 8123-jLVh)
垢版 |
2017/08/20(日) 22:43:04.76ID:gPEOCHBy0
>>197
> 再帰の定義はサブルーチンの中からそのサブルーチンを呼び出すことで、
> それをやりやすく補助する存在は本質じゃない
これは屁理屈だ。
なぜならこの定義では、「再帰出来ない」言語なんて無いから。
再帰出来る/出来ない『言語』を議論している時点で、この定義は無意味で、
「普通に再帰を記述した時に問題なく動くか」が議論用の定義になる。
これは当然であり、自明だ。

つか、君は何が言いたかったんだ?
君の定義ならCOBOLだって再帰出来るだろ?
0200デフォルトの名無しさん (ワッチョイ 93c5-8P7d)
垢版 |
2017/08/21(月) 04:24:06.96ID:LgR8oR3f0
再帰アルゴリズムを繰り返し(ループ)アルゴリズムに変換することは普通のアーキテクチャー上では常に可能、
再帰回数に応じて新規のメモ化用領域を本質的に必要とするという重症なケースでも、最悪配列が使えればどうとでもなる、

>>197
メインフレームってグローバル変数として配列とか確保できなくて
いちいちGETMAINするしかないのスゲー

>>199
System/370で動くGCCの実装があったと聞いたわ(ただし今はSystem/390が動作下限とのこと)
再帰ができるかどうかはしらんwwwwwww
0204デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/21(月) 08:10:41.60ID:M1FJxIMj0
>>199
だから見解が違っているねと言ったろ
アセンブラは再帰できるのか、できないのかという問いと、
COBOLは再帰できるのか、できないのかという問いに、
同じバックボーンで答えることが俺には出来ないが
おまえさんには出来るということだろ?

>>200
bfdではi370だね
0206デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/21(月) 23:00:08.39ID:M1FJxIMj0
犯人扱いしておいて違ったら知らん顔という制度そのものが間違ってる
捜査協力した人には謝礼だろうが
にせ伝票で架空の謝礼費を着服なんかしてないで
やるべきことをやれっての!
0207デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/21(月) 23:01:02.71ID:M1FJxIMj0
架空の謝礼費を内部告発した仙波さん、えらい扱い受けたよね
0208デフォルトの名無しさん (ワッチョイ b391-MHKs)
垢版 |
2017/08/21(月) 23:09:51.41ID:BkgqT9qm0
C++の最新仕様を追い続けられる人ってのはやっぱどこかちょっと変わり者というか
ふわふわしたものが許せないというか、なんとなく動いてるからいいや的な緩さが
許せないというか、白黒はっきりつけようぜ的な性格なのかな?って思ったw
0209デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/21(月) 23:12:01.91ID:M1FJxIMj0
たったの千円でも知らん顔とは次元が違う
謝礼の対象でないという取り決めがあるばかりに
警察官の横柄な態度を誘発しているんだよ
0210デフォルトの名無しさん (ワッチョイ 99e4-njFf)
垢版 |
2017/08/21(月) 23:56:14.20ID:pHph3yYu0
>>208
たかだか3年に1度の更新がそんなにしんどいのかよ
追い続けるもクソもねえ
重箱の隅をつついても1冊程度にまとめられる量しかないのに
0214デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/22(火) 01:03:51.34ID:NIldwpVs0
>>208
ほとんどが待ってた機能だぜ?
言語仕様だけでなくライブラリまで
おまえろくすっぽC++使ってねえだろ
0215デフォルトの名無しさん (ササクッテロラ Sp4d-d1ZX)
垢版 |
2017/08/22(火) 02:32:46.66ID:Z58zmq8rp
全くわからない
雰囲気でc++を使っている
0218デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/22(火) 12:26:19.96ID:NIldwpVs0
そういうおまえはあるのか?
0220デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/22(火) 12:42:39.12ID:NIldwpVs0
それが本当なら恥ずかしい見積もりミスしてんぜおまえさん
0222デフォルトの名無しさん (ワッチョイ 616f-faiX)
垢版 |
2017/08/22(火) 15:03:21.13ID:d7ebk59r0
うん。するどい。
0223デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/22(火) 15:14:35.21ID:NIldwpVs0
雑誌ってエロ本か何かだろどーせ
技術系の雑誌やっててあーゆーバカ言っちゃ自殺もんの恥だぜ
0226デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/22(火) 17:20:14.07ID:NIldwpVs0
あいたた、本にまとめることも、実装とテストも、
とにかく量的な感覚がどこにもないのか
0227デフォルトの名無しさん (ワッチョイ 0b32-xhIi)
垢版 |
2017/08/22(火) 20:47:37.89ID:0/CmF7JC0
>>213
なら、publicにしちゃえばいいじゃんといってみる。

関数は振る舞いを書くべきだと思うし、変数の代わりに使うものじゃないと思うんだ。

あと、オブジェクト指向的にクラス変数は基本悪である、ということも考えるべきではないだろうか。
0238デフォルトの名無しさん (ワッチョイ 8123-jLVh)
垢版 |
2017/08/22(火) 22:58:36.57ID:D8nSL4rC0
>>233
逆にそれが入らない原因なのでは?
軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
見た目分かるようにしろってのがC++の流儀なんだろ。

俺はあった方がいいと思うけどね。
速度チューニングでこの手のマイクロマネージメントは全く意味がないから。
0242デフォルトの名無しさん (ワッチョイ 817f-jLVh)
垢版 |
2017/08/22(火) 23:13:00.45ID:zLx3ukqP0
>軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
>見た目分かるようにしろってのがC++の流儀なんだろ。

C++って、それを判断するのが最も困難な部類の言語だと思うが。
0243デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/22(火) 23:20:46.21ID:NIldwpVs0
set/get用のデータメンバをちまちま用意するという
狭い考えに限定してきやがる思考妨害アイテムは無用
0250デフォルトの名無しさん (ワッチョイ 8123-jLVh)
垢版 |
2017/08/23(水) 00:09:19.34ID:CuDbJhab0
つかお前ら他言語使ってないだろ。
逆に言えばC++はその程度の精度での見積もりが出来る、ということなんだよ。

GC言語なんてGCがどこで走るか予測不能だから、実行時間の保証なんて全く出来ないし、
JIT言語はJIT側にその最適化が入っているかどうかで全く速度が変わってしまう。
つまりJava/C#/JavaScript等はその精度での見積もりはそもそも不可能なんだよ。

それとは別に、C++はその辺の仕組みがかなり複雑になっているのは認めるが、
それでも他言語と比べたら精度高く見積もれる方だよ。

getterを使った場合の問題は、それが見積もりにくくなることと、
あまりに多用するとどこで処理しているのか分かりにくくなる点だが、
まあ、適切に使っている限りはかなり使える機能だから、有った方が便利なんだけどね。
だから普通に考えれば「貪欲」なら当然入れるべきだし、
むしろラムダより先に入れるべきだが、入れないんだから何か引っかかってんでしょ多分。
0253デフォルトの名無しさん (ワッチョイ 817f-jLVh)
垢版 |
2017/08/23(水) 07:57:53.52ID:KTb6BBkr0
a = 1;

こんなコード片で、aの型がプリミティブ型かconstr(int)/operator=(int)を持つクラスなのかによって
実際に実行される処理内容が違う時点で

>軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
>見た目分かるようにしろってのがC++の流儀なんだろ。

そんなものないとわかるだろう。
それににしても、そこからGCのオーバーヘッドに話が飛ぶのはさすがにアクロバティックすぎるw
実実行時間の話なら、マルチスレッドの非リアルタイムOS上のプログラムはどれも正確な見積もりなどできん。
0254デフォルトの名無しさん (ワッチョイ 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に限ったことじゃなく
0256デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/23(水) 12:25:37.91ID:kvkWqUxa0
C++を批判するには
おまえ足んねーものが
多すぎつってんだよ
0257デフォルトの名無しさん (ワッチョイ 2baa-PF2c)
垢版 |
2017/08/23(水) 18:58:23.34ID:HlA0mWJs0
C++ 標準委員会のドワンゴ江添は、職務質問の手荷物検査を拒否したら、
警官10人に、現場で1時間半以上、拘束されたらしい

捜査でもない、任意の行政処分なのにw

それで東京都を訴えた
0258デフォルトの名無しさん (ドコグロ MMb3-x4Vn)
垢版 |
2017/08/23(水) 19:16:52.69ID:Rd2CDMDCM
>>254
> a = 1; がビルトインの代入か、トリビアルのoperator=か、
> ユーザー定義のoperator=か、コンストラクタを呼び出すか、
> コピーかムーブか、読めない人
それがわかったからと言ってなんになるんだ?
定義が常に読めるとは限らんだろ

> 要するにアセンブラ苦手なんだろ
逆アセしてでも読めとか言ってるなら単なる老害のアホ
0259デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
垢版 |
2017/08/23(水) 22:25:37.71ID:kvkWqUxa0
>>258
ほーお、おまえさんは定義が読めないと判断できないのか
普通の人は宣言まで読めれば判断できるんだがw

逆汗読まないほうがバカガキ
バカガキからみて普通の人は老害というだけ
0263デフォルトの名無しさん (ワッチョイ c61c-9BKz)
垢版 |
2017/08/24(木) 10:04:23.28ID:VdsYrxcW0
いらね
0264デフォルトの名無しさん (ワッチョイ ca32-2x4P)
垢版 |
2017/08/24(木) 11:04:12.57ID:h3Bt5TkH0
プロパティじゃないと出来ないことってなになの
0266デフォルトの名無しさん (ワッチョイ c61c-9BKz)
垢版 |
2017/08/24(木) 11:45:56.43ID:VdsYrxcW0
IDEがやれば済むこと
わざわざ言語に入れる必要なし!
0268デフォルトの名無しさん (ワッチョイ 8642-mY/i)
垢版 |
2017/08/24(木) 14:05:25.76ID:5zDLSTW70
オブジェクトの状態と操作の区別
関数でも代用できてしまうけど、変数のように扱えるってのが大きい
変数のような使い方で処理を挟める、これはPublicなメンバ変数では出来ない
0269デフォルトの名無しさん (ワッチョイ c61c-9BKz)
垢版 |
2017/08/24(木) 14:20:51.13ID:VdsYrxcW0
できるよバーカ
C++98より前、ARM C++の時代から
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況