- 1 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 17:56:53.03 ID:uFDqtnkl.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part146 https://mevius.5ch.net/test/read.cgi/tech/1573094136/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 ↑え?だってお前、普通ダイナミックリンクするだろ? "ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
- 2 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 17:59:08.02 ID:3w1BRoQv.net]
- なんやこのキモい天ぷら
- 3 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 23:12:34.99 ID:EE58WPKP.net]
- >>1
死ね
- 4 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 00:03:12.14 ID:zX6m0cqE.net]
- 藻前らにクリスマスプレゼント貼る、
ttps://cpprefjp.github.io/international-standard.html もっともっと争いにはげむと良い
- 5 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 00:18:27.33 ID:usOsPCZf.net]
- ワロタ
- 6 名前:蟻人間 mailto:sage [2019/12/19(木) 00:23:05.50 ID:r6T/W91o.net]
- 1001レス書けたのはなんで? 5chのバグ?
- 7 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 01:07:12.70 ID:5BDnhVE2.net]
- このままいくとそのうち C++20 → C++40 → C++80 ...
などとなり、そのうち C++98 とどっちが古いかわからなくなる 時がやってくるわけだが、その点をちゃんと考えているのか 標準化委員会に問い詰めたい
- 8 名前:デフォルトの名無しさん mailto:sage [2019/12/19(Thu) 06:07:09 ID:+fuR4pm1.net]
- こんなだからC++敬遠されるんだよ
組み込みエンジニアとしては嘆かわしい限り
- 9 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 06:48:20.41 ID:rFEDNRgX.net]
- >>6 前スレッドの「あれっ?」は、俺の環境だと1000番だったよ。
>>8 「こんなだから」はどこを指してる? 「そんなことも忖度できないから…」かも知れんけど。
- 10 名前:デフォルトの名無しさん [2019/12/19(木) 13:50:56.27 ID:e6wF5QYj.net]
- は!const付けると書き込めないから
コンパイラが最適化してくれるんじゃないだろか!!
- 11 名前:デフォルトの名無しさん mailto:sage [2019/12/19(Thu) 14:53:15 ID:CIL8E3K9.net]
- 俺は悪い奴だからconst_castしてしまうぜ
- 12 名前:デフォルトの名無しさん [2019/12/19(木) 15:58:03.38 ID:e6wF5QYj.net]
- 一つのクラスの単体テストって何個くらい作りますか?
- 13 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 16:01:43.72 ID:hJvSxET/.net]
- 1000個
- 14 名前:デフォルトの名無しさん [2019/12/19(木) 16:03:30.00 ID:e6wF5QYj.net]
- 100個くらいじゃ少なすぎるんだ。
- 15 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 23:10:04.38 ID:Y/zGUZTk.net]
- 何個ぐらいって一般化できると思うか?
- 16 名前:デフォルトの名無しさん [2019/12/20(金) 08:56:23.47 ID:jk7l00+3.net]
- メンバ*10とか指標が出てくるかなあって。
- 17 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 11:48:52 ID:N4kH8rcM.net]
- 数じゃなくてカバレッジで考えるんだよ
- 18 名前:デフォルトの名無しさん [2019/12/20(金) 12:49:40 ID:jk7l00+3.net]
- そうですか。
でも測定ツールが高そう。
- 19 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 20:29:58.76 ID:jjn2sxGn.net]
- メンバ・メイ・コボルスミ11
- 20 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 23:43:02.47 ID:i1Ytyme8.net]
- ■ windows.hのmin/maxマクロ回避策4パターン
ttps://yohhoy.h a t e n a d i a r y.jp/entry/20120115/p1 ↑ こんな具合に記号定数マクロ展開を抑止する方法って無いですかね…
- 21 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 23:47:16.50 ID:i1Ytyme8.net]
- 単に展開を抑止するだけなら#undefで良いんですが
#include <Windows.h> namespace w32w { const w32wMOVEFILE_REPLACE_EXISTING = MOVEFILE_REPLACE_EXISTING; #undef MOVEFILE_REPLACE_EXISTING; const MOVEFILE_REPLACE_EXISTING = w32wMOVEFILE_REPLACE_EXISTING; /*...*/ } // namespace w2w みたいなのをもっと簡単にやれないものか…
- 22 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 00:06:23.25 ID:gJjydDaN.net]
- ちょっと何言ってるかわかりませんね
FOOという定義済みマクロとnamespace barがあるとして、 const int bar::FOO を定義済みマクロFOOの値で初期化したい とゆーことです\(^o^)/
- 23 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 00:55:27 ID:FSMLpyuy.net]
- 簡単にできたとして一個一個手で書くつもりか?
- 24 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 07:55:32.45 ID:gJjydDaN.net]
- >>23
手で書けるなら頃せる 今気づいたが定義済みマクロWINVERって<Windows.h>をインクルードしなくても 定義されてるのねん…
- 25 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 08:00:42.78 ID:/C2Zxfa9.net]
- windows.hのsmallに引っ掛かって30分悩んだ
- 26 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 16:01:06.10 ID:41M/xbUn.net]
- >>22
マクロにFOOとかを渡して、トークン連結演算子でどうにかできるのでは? #undef使って切り替えるより簡単だと思う 何がやりたいのかいまいちわかってないので違ってたらスルーしてくれw
- 27 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 16:09:49.97 ID:FSMLpyuy.net]
- >>24
頃せる? できるって意味か? 手でやるのは馬鹿げてる作業だと思うぞ でツールでやるなら別に簡単に書ける必要もなし 正直そんなとこがんばってもと言う気はするけどね 小文字のマクロだけは滅んでほしい
- 28 名前:デフォルトの名無しさん [2019/12/21(土) 21:55:00.70 ID:7S/5Xmi8.net]
- 背中に手が届く痒いソフトないかな。
- 29 名前:デフォルトの名無しさん mailto:sage [2019/12/22(日) 09:20:26.05 ID:PdpWotrS.net]
- お前が自作して配布するんだよぉ
- 30 名前:デフォルトの名無しさん mailto:sage [2019/12/22(日) 14:56:43.90 ID:qJChSMJU.net]
- 窓の手。
- 31 名前:デフォルトの名無しさん [2019/12/23(月) 14:58:26.67 ID:sEnpgkKc.net]
- namespace w32w {
#include <Windows.h> } // namespace w2w const MOVEFILE_REPLACE_EXISTING = w32w::MOVEFILE_REPLACE_EXISTING;
- 32 名前:デフォルトの名無しさん [2019/12/23(月) 16:57:11.44 ID:f3nq+WHN.net]
- constはスレッドセーフじゃないとダメなんだな。
- 33 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 18:18:55.23 .net]
- 痒いソフト
- 34 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 20:10:00.49 ID:X1aPCWn8.net]
- >>31
マクロだったらどうするんだ
- 35 名前:デフォルトの名無しさん [2019/12/23(月) 20:11:03.19 ID:f3nq+WHN.net]
- キャッシュやメモ化してるだけのメンバはconst付けたいところだけど、ミューテックス使うとマイクロ秒の単位で時間がかかるとなると、付けないほうが良いのかな。
- 36 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 20:11:47.02 ID:yUC4LEa+.net]
- というかマクロが問題なわけだが
- 37 名前:デフォルトの名無しさん [2019/12/23(月) 20:35:01.08 ID:f3nq+WHN.net]
- そういえばマクロって使う必要なくなったよね。
なんでだろ。
- 38 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 20:39:32.58 ID:z7fGiGkq.net]
- ヘッダとかでたくさん使われてる
- 39 名前:デフォルトの名無しさん [2019/12/23(月) 20:46:52.21 ID:f3nq+WHN.net]
- そういえばBoostがマクロまみれだった。
- 40 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 21:01:02.33 ID:wextYSDX.net]
- c++11以降の目的の一つがマクロつぶしだからな。
- 41 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 21:24:59.81 ID:kZpvALBe.net]
- >>39
boostはまだ言語仕様で標準化されていない機能を標準化された機能で実現しようとしている部分が多いから、自然とマクロでどうにかしなきゃならない箇所が多いんだろう
- 42 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 03:50:11.29 ID:1TojzXfm.net]
- >>40
捨てるためにゴテゴテとよけいな機能をつけなくても、 スコープ内だけで有効なローカルマクロ的なものを導入すればそれで良かったような気がしなくもないが、 #includeが絡むとやっぱだめかなw
- 43 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 05:03:51.44 ID:ZHC84Kgk.net]
- 今さらEmscripten使ってwasm化してみたけどそこそこ使えそう
- 44 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 06:19:47.03 ID:Dtupe+iE.net]
- いまさらかよ!
- 45 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 07:00:24.75 ID:Zba7/+kU.net]
- マクロというかプリプロセスの一部を言語規格
- 46 名前:内に取り込まないと無理なんだろ []
- [ここ壊れてます]
- 47 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 07:02:33.85 ID:cUFUrp77.net]
- C++が進化してもマクロは無くならない
- 48 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 14:34:27.28 .net]
- せめてなくそうとはしろ
- 49 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 15:28:29.91 ID:mUUuTbFd.net]
- マクロは正義
今日もいくつも生やした
- 50 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 15:40:51.62 .net]
- マクロについて、江添はなんて言ってる?
- 51 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 15:46:02.23 ID:VueyJ5PW.net]
- 自分で読めば
- 52 名前:デフォルトの名無しさん [2019/12/24(火) 16:14:08.15 ID:qpZ25SUC.net]
- 逆にマクロが進化する可能性は。
- 53 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 16:15:20.38 ID:Uve8u0PJ.net]
- それはやだねえ
- 54 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 17:12:20.17 ID:iCGyxCxX.net]
- マクロの進化を考えてみた
マクロは型に対応していないのが問題なので、まず型を導入する しかし完全に常に型を必要としてしまうと普通の関数や変数と違いがなくなるので コンパイル時に決定できる場合に限り、ジェネリックに何でも受けいれるようにする ・・あ、そうだ同じ名前で複数の宣言を可にして、それのうち一つでもコンパイルエラーで ないなら他は無視して、コンパイルできるもののみ有効とかにすると色々つかえるかもしれないな たとえばある構造体に特定のメンバがあるかどうかでコンパイル時に処理を分岐するとか
- 55 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 17:42:03.17 ID:OCcxjFNd.net]
- テンプレートですか?
- 56 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 17:44:14.13 ID:vOfEkls8.net]
- マクロと言えばマクロアセンブラ
C/C++のマクロより高機能なので見てみると良い
- 57 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 18:10:27.35 ID:Uve8u0PJ.net]
- MASMのマクロと比べるべきはテンプレートだろ
- 58 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 18:17:05.63 .net]
- C++コードをプリプロセスする専用の新規言語を発明すれば!
- 59 名前:デフォルトの名無しさん [2019/12/24(火) 18:31:34.23 ID:IBUEMR4t.net]
- >>53
それどこのtemplate
- 60 名前:デフォルトの名無しさん [2019/12/24(火) 18:33:07.30 ID:IBUEMR4t.net]
- >>57
それどこのQt
- 61 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 18:44:21.54 ID:Uve8u0PJ.net]
- >>57
それはcfrontといって世界最古のC++だ
- 62 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 19:43:07.15 ID:cUFUrp77.net]
- >>56
テンプレートとは違う
- 63 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 19:53:54.69 ID:SdQqxQDy.net]
- >>59
mocはまだ生きてるんだな 無くなったと思ってた
- 64 名前: mailto:sage [2019/12/24(火) 19:59:00.17 ID:Kb/HLSFP.net]
- >>60
そうか、C++11 or later を食らうをプリプロセッサーがウけるのか…
- 65 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 20:06:18.60 ID:ed+tLMlR.net]
- rustのようなマッチングでやるとか
他にはASTのAPI提供するとか あとはlispみたいにやるとか c/c++よりまともなやり方はあるけど正直どれもややこしいし上に めんどくさいんだよね
- 66 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 20:10:21.58 ID:ed+tLMlR.net]
- メタプログラミングにおいてあえてチューリング不完全にしちゃうってのは
悪くないデザインチョイスだと思うんだよね すがすがしい
- 67 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 21:38:38.95 ID:4c9jV6+e.net]
- てかその手の糞みたいな発想はlispでやりつくされてる。
バカが知らないだけで。
- 68 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 22:07:05.33 ID:E1PNjCWX.net]
- includeでテキストファイルを文字列literalとして読み込んだり、CSVファイルを行毎に指定の変換で読み込んだりしたい
外部プログラムで変換するのがめんどい
- 69 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 22:10:34.81 ID:UL4fNRBx.net]
- なんとかいうプログラミングの偉いひとがいってたんだけど
「凡人が斬新な発想と思っている事の5割は既に誰かがやっており 残り5割は斬新ではなくそもそも機能しない」らしい
- 70 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 22:34:55.01 .net]
- よい子のみんな!のAAにもあるとおり
- 71 名前:デフォルトの名無しさん [2019/12/25(水) 12:25:41.21 ID:2ymVLaRc.net]
- 最強のC++はC++の道から外れないこと
- 72 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 13:27:29.92 .net]
- C++のタオとは?
- 73 名前:デフォルトの名無しさん [2019/12/25(水) 14:04:21.60 ID:VS52OTGY.net]
- 振り返るとそこに道が出来ているってことでは。
- 74 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 15:20:11.91 ID:R5R0tFog.net]
- c++ natureを極めるためにはc++公案で鍛えるしかない
- 75 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 19:48:57.63 ID:8w0fwfLC.net]
- 主要コンパイラはすべてサポートしているにも関わらずいまだに#pragma onceを使わない人が少なくないのはなぜ?
- 76 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 20:16:53.24 ID:CXPtawUE.net]
- onceはclang-clにしたら文句言われた。
- 77 名前: mailto:sage [2019/12/28(土) 20:21:50.83 ID:9Pig40yt.net]
- >>74
#if defined() / #ifdef で十分ですから #progma once が規格に取り込まれでもしないかぎり状況はかわらないでしょうね #progma once の優位性はなんでしょうか
- 78 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 20:24:49.66 ID:8w0fwfLC.net]
- 一行で済む
万が一のdefineの衝突が起こらない
- 79 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 20:34:45.01 ID:izuDiHMA.net]
- 今はgccでもつかえるんだっけか
- 80 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 20:40:53.71 ID:8w0fwfLC.net]
- 3.4.xのどこかで対応してるからもう10年以上前の話
- 81 名前:デフォルトの名無しさん [2019/12/28(土) 21:01:17.79 ID:pepWReU2.net]
- VSについてくるclang-clはpragma once普通に使えてる。
- 82 名前:デフォルトの名無しさん [2019/12/28(土) 21:03:08.62 ID:pepWReU2.net]
- いまcl、clang-cl、gccでチェックしてるけど、pragma onceは使えてる。
- 83 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 21:15:39.80 ID:oW0/scDi.net]
- #pragma once
と書いておけばperlで#if defined() / #ifdefに直せる
- 84 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 21:32:47.05 ID:jUBDgrWb.net]
- 標準化してくれれば良いのに
pragmaで出来ることの範疇越えている気はするけど
- 85 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 21:48:20.70 ID:isXVaWAp.net]
- 他のもろもろと合わせてモジュールに移行することで済ませるつもりなんでしょ。
- 86 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 01:41:15.83 ID:BmrLXJpy.net]
- そういやまだモジュールサポートしてるコンパイラないな
- 87 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 01:54:26.89 ID:KMgGrgwo.net]
- exportみたいになりませんように
- 88 名前:デフォルトの名無しさん [2019/12/29(日) 04:54:11 ID:Q9hr3WtC.net]
- C#だとis演算子を利用してキャスト可能か判定していますが、
C++でdynamic_castでキャスト可能かってどう判断すればよいのでしょうか? 後、static_castできるかどうかの判定はどうすればよいのでしょうか?
- 89 名前:デフォルトの名無しさん [2019/12/29(日) 05:54:33.33 ID:Jtzyjysr.net]
- https://ideone.com/wtGGM7
- 90 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 08:13:14.15 ID:IGe5Ocj7.net]
- dynamic_castがnullptrを返すかどうかで判断
if (auto dp = dynamic_cast<Derived*>(bp)) { (dpを使った処理) }
- 91 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 08:30:34.84 ID:e4b1FoNz.net]
- >>87
static_castは静的に決まるから、コンパイルエラーにならなければできるということだぞ。 それが意図した通りの変換になるかは規格を正しく理解すればいい。
- 92 名前:デフォルトの名無しさん [2019/12/29(日) 10:22:08.63 ID:3P5H5aUL.net]
- テトリスでプログラミングの基礎は身につくますか?
- 93 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 10:25:16.33 ID:BmrLXJpy.net]
- いいえ
- 94 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 10:27:06.48 ID:OzwmxFfF.net]
- >>91
まずは日本語の基礎を身に付けてください。 それと、最近python関連のスレでテトリスの質問をしまくっていたキッズなら、テトリスはあきらめて愚直に入門書から始めてください。
- 95 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 10:43:20.20 ID:iKwMwrMu.net]
- >91
知恵袋で見た質問だな https://detail.chi
- 96 名前:ebukuro.yahoo.co.jp/qa/question_detail/q12217899992 []
- [ここ壊れてます]
- 97 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 11:38:43.95 ID:G7raGgQx.net]
- 江添の最近出した本、このスレ的にはどういう評価なの?
- 98 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 13:32:59.69 ID:KIjz0jVz.net]
- 江添亮のC++入門、2019/9
こんな本を出していたのかw 関係ないけど、漏れは、下の本を読んでる。 短くまとめられていて良い [改訂第3版]C++ポケットリファレンス、高橋 晶 ほか、2018
- 99 名前: mailto:sage [2019/12/29(日) 14:20:03.86 ID:yqbBnK7b.net]
- >>96
>C++ポケットリファレンス、高橋 晶 たぶん最初に出たC++11和書ですね、すごく勇気がいったと思います、私も読ませてもらっています
- 100 名前:96 mailto:sage [2019/12/29(日) 14:38:45.96 ID:KIjz0jVz.net]
- 江添亮、επιστημη[エピステーメー]、高橋晶とか、
日本のC++標準化委員会のメンバーは、伝道師みたいな香具師が多い 本をよく書く
|

|