C++相談室 part151

■ このスレッドは過去ログ倉庫に格納されています
2020/05/14(木) 11:53:25.59ID:ZPCfyTux
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part150
https://mevius.5ch.net/test/read.cgi/tech/1584975873/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

テンプレここまで
748デフォルトの名無しさん
垢版 |
2020/07/02(木) 20:19:59.76ID:Vurtjy2V
>>746
Perlのソースコードをjavacでコンパイルする事はない。
ということは、言語をソースコードの属性としたほうが良いのでは?
という考え方は理解できるかな。
一概に否定しない。

とはいえ、C++ではどっちにしろビルドシステムが必要なので、ソース内で指定できることに意義を感じない。
2020/07/02(木) 20:22:38.02ID:EhH78vwe
メンバ関数定義の際にクラス内の型名を使った戻り値型を先に書く場合、クラス名::戻り値型 って書かなきゃいけないくらいパーサに配慮した仕様になっているのに、そんな面倒くさい要望に対応されるとは考えにくい
2020/07/02(木) 20:23:33.54ID:R/kQb57d
自分で作ったならバージョンわかってるやろ
ライブラリとして配布するならpkg-configでも書いとけばいい
何が問題だよ
2020/07/02(木) 20:24:28.66ID:EhH78vwe
拡張子で分けるのが一番自然だよね
xxx.cc17とかxxx.17.ccとか
2020/07/02(木) 20:24:41.75ID:R/kQb57d
標準のバージョンなんかよりたくさん環境依存あって
それを自動解決する方法はいろいろあるのだから
それを使えばなんの問題もないんだよ
2020/07/02(木) 20:25:20.06ID:1S4E8SKc
ライブラリとして配布するのに
C++17を要求するって

使ってもらう気無いだろ
754デフォルトの名無しさん
垢版 |
2020/07/02(木) 20:27:04.96ID:Vurtjy2V
ライブラリを使ってくださるお客様にC++17を用意させるのは心苦しいかもしれないな。
2020/07/02(木) 20:27:07.52ID:EhH78vwe
今時c++17必須でも大丈夫だろ
msvcですら使い物になる程度まで対応しているんだぞ
2020/07/02(木) 20:28:23.76ID:1S4E8SKc
>>755
組み込みは未経験か?
757デフォルトの名無しさん
垢版 |
2020/07/02(木) 20:28:44.61ID:Vurtjy2V
むしろ20はよ来いと思ってますが。
2020/07/02(木) 20:34:28.40ID:EhH78vwe
組み込みのほうがwindowsより規格対応早いくらいじゃね
まあ全部は使えないけど、それは03だろうが同じだ
むしろコンパイル時に出来ることが増えた分組み込みには新しい規格のほうが向いている
2020/07/02(木) 20:36:35.79ID:1S4E8SKc
小規模組み込みは未経験か?
2020/07/02(木) 20:43:28.28ID:EhH78vwe
小規模だとコンパイラ使えるだけでも御の字
コア部分は結局アセンブリで書くし
そもそも自由にスタックすら使えなくね?
761デフォルトの名無しさん
垢版 |
2020/07/02(木) 20:47:32.39ID:Vurtjy2V
RAM16バイトしかないしね。
無理ですわ。
2020/07/02(木) 21:00:59.82ID:qK+Va6mV
>>746
あなただけって他の人が支持しているレスも出てるよ?
自演だろって言うんだろうけど違う
マウントしたいんだろうね
2020/07/02(木) 21:02:30.64ID:qK+Va6mV
>>756
その言葉をそのまま返す
ARM以外の何かをやってる人?
2020/07/02(木) 21:03:18.41ID:EhH78vwe
拡張子で区別しろよ
FORTRANを見習って
2020/07/02(木) 21:03:28.33ID:qK+Va6mV
>>741
737の突っ込みは見なかったことにしたいんだよね
766デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:04:54.87ID:Vurtjy2V
>>762
どのレス?
2020/07/02(木) 21:06:16.16ID:jaxwQaY9
もうGCCビルドした?
2020/07/02(木) 21:06:39.99ID:qK+Va6mV
>>766
716
2020/07/02(木) 21:07:29.63ID:qK+Va6mV
>>757
禿同
2020/07/02(木) 21:14:02.46ID:EhH78vwe
念願のconceptが
2020/07/02(木) 21:19:01.95ID:Pm5AW70q
目的がわからなすぎて、始め何をしたいのかさっぱりわからんかった。
答えがでるたびにゴールを動かされてる気分だったわ。
コミュ障のID:qK+Va6mVが全て悪い
2020/07/02(木) 21:24:05.51ID:qK+Va6mV
ゴールを真面目に追ってくれてありがとう
2020/07/02(木) 21:29:34.62ID://fjMSvC
>>772
死ね
774デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:45:55.51ID:Vurtjy2V
まあ一通り意見が出そろったと思いますが、ISO/IEC 14882:2023への提案は、今回は見送らせていただきたいと存じます。
また何かありましたら、スレのほうまでご連絡ください。
2020/07/02(木) 22:48:32.20ID:R/kQb57d
K&Rしか解さないコンパイラのためにプロトタイプ宣言したコードの先頭にCのバージョン書くか
アホらし
2020/07/02(木) 22:59:45.64ID:il/EZBAV
extern シー
2020/07/02(木) 23:21:51.63ID:1S4E8SKc
>>763
色々とやってる
2020/07/02(木) 23:30:42.18ID:NPHwzOsK
色々とやらかしてる
2020/07/02(木) 23:32:21.40ID:IPGZ+Gs9
範囲for文でコンテナを走査するときに要素を参照で持つかどうかふと迷った
それがパフォーマンスに影響するなら当然実測するべきだが、大概こんなもんが律速になるわけないからどっちかに決めときたい
要素を変更するなら参照、そうじゃないなら参照じゃない、でおk?

ちなみに型は指定するよりautoにした方が大抵の場合速いみたいな話あるよね?
2020/07/02(木) 23:32:49.02ID:NPHwzOsK
質問なのですが自作アプリをソースコードでGCCをビルドして配布する場合、
テストってどうするの?
あらゆるGCCのビルド条件でテストするの??
2020/07/02(木) 23:36:11.82ID:53deMRLD
>>779
auto&& にしておけばだいたい良いよ。
2020/07/02(木) 23:38:42.50ID:1S4E8SKc
>>779
レジスタ1個で収まる型ならコピー
そうじゃないなら参照
書き換えないならconst参照
2020/07/02(木) 23:45:17.05ID:jaxwQaY9
>>780
あらゆるなんか無理に決まってるだろ
人のまねしろ
他人のgithubとか見たことないのか?
784デフォルトの名無しさん
垢版 |
2020/07/03(金) 02:56:17.35ID:36TwtcUk
>>780
僕はclang-cl、cl、gccで各Release/Debug、計6種のバイナリを作ってテスト通してますよ。
実際、通らないことが稀にあるので、そうゆう手順になりました。

とはいえ、ミスをしない人なら、必要ない事かも。
テストも必要ないかもしれない。
2020/07/03(金) 06:34:45.62ID:pwGjxhFH
>>784
デスヨネー;

ていうかソースコードで配布したものをユーザーがautomakeでGCCをビルドする文化とか
ソフトウェアー工学的に正しくテストされてるうちに入れることが本当に可能なの??
とそこはかとなく疑問が、
2020/07/03(金) 06:42:13.15ID:pwGjxhFH
もはやautomakeでGCCをビルドするレベルになると、
事はソースコードを書いた人の品質にとどまらず、
ユーザーがどのような経緯でインストールしたかわからない
野良ライブラリとか野良コンパイラの品質が絡んできてしまうま、
787703
垢版 |
2020/07/03(金) 07:07:39.48ID:AnL7VPS4
まあしかし結局#pragmaはないってことね
最初の質問には答えて貰えたようだ
みんなありがとう
2020/07/03(金) 07:59:45.22ID:9AQoDd9l
CMakeとかmeson使えよ
2020/07/03(金) 08:30:15.36ID:AnL7VPS4
いやそれは勝手にするさ
俺の状況をいちいち知らんやつに
わかってもらう必要もないし
2020/07/03(金) 09:00:50.39ID:mxts/vg4
無知が謎の上から目線
2020/07/03(金) 09:02:31.13ID:mxts/vg4
gccをビルドとかなんの話だよwwww
2020/07/03(金) 09:06:03.21ID:mxts/vg4
そもそもコンパイラは後方互換性を気にしていれば良くて
過去のコードがコンパイルできる、古い記法なら古いよとメッセージを出して終わるまでやれば良くて
将来変わるであろう規格に備えて私の知らない規格ですよと教えてあげる必要はなくエラーで落ちればそれでいい
2020/07/03(金) 09:24:17.78ID:AnL7VPS4
恰好つけたいんなら余計なことは言わないほうがいいぜ(クスクス
2020/07/03(金) 09:45:48.23ID:0L14wyJb
>>793
それは
>>789
なんて書いちゃうやつのことでしょw
2020/07/03(金) 09:59:43.49ID:AnL7VPS4
あれは何かおかしいのか? おまえの頭のほうが(ry
2020/07/03(金) 10:28:37.24ID:0L14wyJb
>>795
無知を指摘されただけのことを自分の事情的に言い訳して謎の上から目線へ変換してるのが頭悪すぎでしょw
2020/07/03(金) 10:45:09.88ID:AnL7VPS4
いらんものを使わんのを無知とか大きなお世話なんだよ
おまえだっていらんものは使わんだろうが、それも頭が悪いからか?

いちいちひっ絡んでくるのは何かよっぽど悔しい思いしてるんだろうな
俺は最近あんまり誰かをコテンパンにやっつけた憶えはないんだが
何か気に障ったのか?
2020/07/03(金) 10:47:55.45ID:AnL7VPS4
ずーっと前にシバイたったやつがまだ根に持ってるのかな
だとしたらキモすぎ
2020/07/03(金) 10:59:50.18ID:0L14wyJb
他人に教えを乞うておきながら
やあご苦労的な上から目線でまとめるバカwww
匿名掲示板で根に持つも何も、一体お前誰だよwwwww
バカってホントwwww
2020/07/03(金) 11:01:41.75ID:0L14wyJb
正体わからない場所で根に持たれてると思うってことは
同じようなことを繰り返してるんだろ?
無知を晒して指摘されてるのになんか偉そうとかwwww
あるいはココロの病気かwww
2020/07/03(金) 11:03:13.38ID:AnL7VPS4
787のどこが上から目線なんだよ
言いがかりはやめてもらおうか
2020/07/03(金) 11:13:37.77ID:0L14wyJb
>>801
わからないなら人間関係ヤバイでしょw
2020/07/03(金) 11:14:42.94ID:0L14wyJb
散々罵倒しといてこれくらいで許したるわとかいうメダカ師匠になってるんだよwww
2020/07/03(金) 11:19:30.11ID:AnL7VPS4
>>802
説明しろよ
できないならおまえもヤバイぜ
2020/07/03(金) 11:26:31.12ID:AnL7VPS4
煽ってるつもりのようだが脇甘すぎだろw
2020/07/03(金) 12:17:55.40ID:0L14wyJb
>>805
煽って他人に教えを乞うスタイルはお前だろwwww
2020/07/03(金) 12:19:01.99ID:AnL7VPS4
いーや、思い当たる節が全然ない

>>802
説明しろよ
できないならおまえもヤバイぜ

早くしろよw
2020/07/03(金) 12:19:30.89ID:0L14wyJb
匿名掲示板で根に持たれてる自覚があるとか相当ココロの状態やばいよw
2020/07/03(金) 12:20:19.89ID:AnL7VPS4
キモすぎつってんじゃん

>>802
説明しろよ
できないならおまえもヤバイぜ

早くしろよw
2020/07/03(金) 12:20:41.85ID:0L14wyJb
>>807
一連の流れであの態度
頭おかしいでしょw
それがわからないなら人間関係やばいw
2020/07/03(金) 12:24:37.22ID:jbweNl0h
はい次
2020/07/03(金) 12:36:38.06ID:AnL7VPS4
>>810
やーい説明できねえ
ブーメラン痛そうだなw

次におまえは「ブーメランなんか刺さってないから痛くない」という
目にうるうる涙をためながら
2020/07/03(金) 12:38:58.29ID:oEOxZVHb
pragmaのアイデアを思いつくこと自体はまぁいいと思うけど
>>747 の指摘受けたら、この仕様は駄目なことわかるよね
なのにそこでやめずに強弁続けておいて最後に >>787 はずっこける
2020/07/03(金) 12:41:35.64ID:AnL7VPS4
なんか他の#pragma使ってなさそうだね
ルールを途中で変更する#pragmaは珍しくないんだが
2020/07/03(金) 12:48:45.85ID:oEOxZVHb
まだ何がダメなのかわかってないらしい
しかし途中でコンパイラ切り変えるのは画期的だわw
2020/07/03(金) 12:57:41.14ID:AnL7VPS4
コンパイラ切り変え??? 何の話をしている?
2020/07/03(金) 13:00:50.61ID:oEOxZVHb
もういいよ飽きた
2020/07/03(金) 13:01:08.06ID:AnL7VPS4
ID変わったけど話し方が酷似している
さては、またあいつか
819デフォルトの名無しさん
垢版 |
2020/07/03(金) 13:05:25.55ID:6268sYfp
go は
// コメントに描いてあっても反応するから怖い
820デフォルトの名無しさん
垢版 |
2020/07/03(金) 13:07:15.94ID:6268sYfp
BOM付選んだコンパイラもあるし
コンパイルオプション選んだコンパイラもあるけど
ソースの先頭のエンコード選んだコンパイラはないんだっけ
821デフォルトの名無しさん
垢版 |
2020/07/03(金) 13:09:03.86ID:6268sYfp
>>751
なるほど
.o32とか.o64とか
.c32とか.c64とかな
2020/07/03(金) 13:15:32.85ID:AnL7VPS4
ISO/IEC14882は3年毎に改訂されることになっているんだから
今後は定期的な改定に備える計画もあって然るべきだと思う
2020/07/03(金) 13:22:06.06ID:ShNCsHag
何がいったいわかったのだろう
それに勝手に他の人を認定してるしwww
相当ヤバいわw
2020/07/03(金) 13:26:13.21ID:AnL7VPS4
推測と認定の区別がつかないやつ
実社会でも不自由してそうだな
2020/07/03(金) 13:30:10.98ID:AnL7VPS4
あわよくばまぐれ当たりを狙ったようなテキトーな言葉遣いをするやつ
迫力ねえんだよ
2020/07/03(金) 13:32:31.36ID:ShNCsHag
では何がわかったんだ?
ああ?
喧嘩に負けて上から目線の捨て台詞にしか見えねーんだよw
2020/07/03(金) 13:35:59.48ID:AnL7VPS4
ほらな

心当たりのあることを咎めてこないから全くダメージにならない
何かイヤミを言ってやろうという意図だけはわかるんだが滑りすぎ
2020/07/03(金) 13:53:09.64ID:BB9T+E2r
ここでいつも似たような喧嘩をしている二人って毎回同じ奴らだろう。
なんだかんだ言ってお前ら仲良いな。
他のスレ住人に見せつけてくれなくていいから、よそでやれ。
2020/07/03(金) 14:02:21.86ID:/+uSoVK/
独りで客寄せのサクラだったりして
2020/07/03(金) 14:03:03.18ID:ZGwZb8L6
ここまで酷いと自作自演にしか観えない
2020/07/03(金) 14:06:09.04ID:AnL7VPS4
そういえば俺にひっ絡んでくるやつ
話し方というかアホさが似てると思うことはちょくちょくある
2020/07/03(金) 14:15:34.52ID:ShNCsHag
>>827
787がメダカ師匠になってることがわからないようじゃどうしようもないよw
2020/07/03(金) 14:49:50.97ID:Rli2dJzV
まぐれ当たり来ないな
2020/07/03(金) 15:56:25.56ID:f9zPtScu
>>747
先頭行に書けばいいだけだろ
まあ使い勝手を考えてコメントを除く先頭行に書くようにすればいい

> 途中で現れたらどうするの?
エラーにすればいい

> 引数で指定されているのと矛盾したらどうするの?
どちらを優先するかを決めておけばいい

> 複数異なる指定があったら?
エラーにすればいい

よくある処理だしなんの問題もないけど?
835デフォルトの名無しさん
垢版 |
2020/07/03(金) 15:58:53.44ID:36TwtcUk
C++使いにしては低能過ぎるレスが多いな。
どういうことだ。
2020/07/03(金) 16:01:05.70ID:3KYyPS1e
>>782
プリミティブ型ならレジスタに乗るって思って良いんですかね?
2020/07/03(金) 16:11:49.06ID:fxIx3skX
>>836
構造体型/配列型以外のデータは原則的にレジスタには乗る。
ただし、参照と直値のどちらが効率が良いかは、レジスタに乗るかどうかだけで
決まるわけではない。
1個のレジスタに乗らなくてもレジスタ数個分ならコピーしてしまった方が
参照より速くなる場合は多い。ケースバイケースだが、レジスタ5個分とかでも
コピーした方が速い場合もある。
2020/07/03(金) 16:59:35.38ID:9AQoDd9l
そもそもボトルネックになるのかっていう
2020/07/03(金) 17:22:38.22ID:f9zPtScu
>>836
ケースバイケース
普通はそんなことを気にする必要はないし気にする必要があるなら処理系のドキュメントを読め
>>837みたいに憶測で語ってる奴は無視しておけばいい
2020/07/03(金) 17:37:19.38ID:fxIx3skX
>>839
憶測じゃなく、俺は高速化の専門家だ。
2020/07/03(金) 17:43:16.98ID:3KYyPS1e
>>838-839
いや元の質問(>>779)を読めよボンクラ
2020/07/03(金) 17:47:39.31ID:fxIx3skX
>>841
読んだから、高速化のためには、レジスタに乗るかどうかだけで決めるべきじゃないので正確にアドバイスしたが、あなたが理解できないだけだよ。
2020/07/03(金) 17:51:37.27ID:fxIx3skX
>>842
参照を使った場合、参照を介してのメンバアクセスにはコストがかかるので、
むしろ最初にコピーした方が高速になることがあるんだ。
文字列データや、巨大なバッファを持つようなものはコピーしてはいけない。
それは速度だけじゃなく、無駄なメモリー領域の確保まで必要となるため。
もしメモリー効率度外視して、バッファ確保の時間も0だと仮定してよいなら、
大きなデータであっても、参照を介してアクセスするよりもコピーした方が速いことが有る。
ただし、その場合にはキャッシュを超えない程度の場合は、という条件が付くことになる。
2020/07/03(金) 17:58:05.10ID:yyYbA8Zx
引数受け渡しがクリティカルになるような状況ならinline化するかipo最適化するだろ

値だろうがconst参照だろうが、最適化されれば違いはなくなる
845デフォルトの名無しさん
垢版 |
2020/07/03(金) 18:00:47.69ID:36TwtcUk
おまえらは王者の風格が足りない。
偽C++使いめ。
2020/07/03(金) 18:10:53.48ID:fxIx3skX
>>844
>値だろうがconst参照だろうが、最適化されれば違いはなくなる
ダウト
2020/07/03(金) 18:16:59.50ID:3KYyPS1e
>>842
いや安価先をよく見てくださいよ
あなたは僕のリクエスト通りに「大概」の回答をくれたから感謝してます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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