[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/25 06:12 / Filesize : 214 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part147



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++標準化委員会のメンバーは、伝道師みたいな香具師が多い

本をよく書く








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef