C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part146
https://mevius.5ch.net/test/read.cgi/tech/1573094136/
このスレもよろしくね。
【初心者歓迎】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/ (日本語)
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
↑え?だってお前、普通ダイナミックリンクするだろ?
"ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
C++相談室 part147
■ このスレッドは過去ログ倉庫に格納されています
2019/12/18(水) 17:56:53.03ID:uFDqtnkl
2019/12/19(木) 16:01:43.72ID:hJvSxET/
1000個
14デフォルトの名無しさん
2019/12/19(木) 16:03:30.00ID:e6wF5QYj 100個くらいじゃ少なすぎるんだ。
2019/12/19(木) 23:10:04.38ID:Y/zGUZTk
何個ぐらいって一般化できると思うか?
16デフォルトの名無しさん
2019/12/20(金) 08:56:23.47ID:jk7l00+3 メンバ*10とか指標が出てくるかなあって。
2019/12/20(金) 11:48:52.93ID:N4kH8rcM
数じゃなくてカバレッジで考えるんだよ
18デフォルトの名無しさん
2019/12/20(金) 12:49:40.01ID:jk7l00+3 そうですか。
でも測定ツールが高そう。
でも測定ツールが高そう。
2019/12/20(金) 20:29:58.76ID:jjn2sxGn
メンバ・メイ・コボルスミ11
2019/12/20(金) 23:43:02.47ID:i1Ytyme8
■ windows.hのmin/maxマクロ回避策4パターン
ttps://yohhoy.h a t e n a d i a r y.jp/entry/20120115/p1
↑
こんな具合に記号定数マクロ展開を抑止する方法って無いですかね…
ttps://yohhoy.h a t e n a d i a r y.jp/entry/20120115/p1
↑
こんな具合に記号定数マクロ展開を抑止する方法って無いですかね…
2019/12/20(金) 23:47:16.50ID:i1Ytyme8
単に展開を抑止するだけなら#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
みたいなのをもっと簡単にやれないものか…
#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
みたいなのをもっと簡単にやれないものか…
2019/12/21(土) 00:06:23.25ID:gJjydDaN
ちょっと何言ってるかわかりませんね
FOOという定義済みマクロとnamespace barがあるとして、
const int bar::FOO
を定義済みマクロFOOの値で初期化したい
とゆーことです\(^o^)/
FOOという定義済みマクロとnamespace barがあるとして、
const int bar::FOO
を定義済みマクロFOOの値で初期化したい
とゆーことです\(^o^)/
2019/12/21(土) 00:55:27.57ID:FSMLpyuy
簡単にできたとして一個一個手で書くつもりか?
2019/12/21(土) 07:55:32.45ID:gJjydDaN
2019/12/21(土) 08:00:42.78ID:/C2Zxfa9
windows.hのsmallに引っ掛かって30分悩んだ
2019/12/21(土) 16:01:06.10ID:41M/xbUn
2019/12/21(土) 16:09:49.97ID:FSMLpyuy
>>24
頃せる?
できるって意味か?
手でやるのは馬鹿げてる作業だと思うぞ
でツールでやるなら別に簡単に書ける必要もなし
正直そんなとこがんばってもと言う気はするけどね
小文字のマクロだけは滅んでほしい
頃せる?
できるって意味か?
手でやるのは馬鹿げてる作業だと思うぞ
でツールでやるなら別に簡単に書ける必要もなし
正直そんなとこがんばってもと言う気はするけどね
小文字のマクロだけは滅んでほしい
28デフォルトの名無しさん
2019/12/21(土) 21:55:00.70ID:7S/5Xmi8 背中に手が届く痒いソフトないかな。
2019/12/22(日) 09:20:26.05ID:PdpWotrS
お前が自作して配布するんだよぉ
2019/12/22(日) 14:56:43.90ID:qJChSMJU
窓の手。
31デフォルトの名無しさん
2019/12/23(月) 14:58:26.67ID:sEnpgkKc namespace w32w {
#include <Windows.h>
} // namespace w2w
const MOVEFILE_REPLACE_EXISTING = w32w::MOVEFILE_REPLACE_EXISTING;
#include <Windows.h>
} // namespace w2w
const MOVEFILE_REPLACE_EXISTING = w32w::MOVEFILE_REPLACE_EXISTING;
32デフォルトの名無しさん
2019/12/23(月) 16:57:11.44ID:f3nq+WHN constはスレッドセーフじゃないとダメなんだな。
2019/12/23(月) 18:18:55.23
痒いソフト
2019/12/23(月) 20:10:00.49ID:X1aPCWn8
>>31
マクロだったらどうするんだ
マクロだったらどうするんだ
35デフォルトの名無しさん
2019/12/23(月) 20:11:03.19ID:f3nq+WHN キャッシュやメモ化してるだけのメンバはconst付けたいところだけど、ミューテックス使うとマイクロ秒の単位で時間がかかるとなると、付けないほうが良いのかな。
2019/12/23(月) 20:11:47.02ID:yUC4LEa+
というかマクロが問題なわけだが
37デフォルトの名無しさん
2019/12/23(月) 20:35:01.08ID:f3nq+WHN そういえばマクロって使う必要なくなったよね。
なんでだろ。
なんでだろ。
2019/12/23(月) 20:39:32.58ID:z7fGiGkq
ヘッダとかでたくさん使われてる
39デフォルトの名無しさん
2019/12/23(月) 20:46:52.21ID:f3nq+WHN そういえばBoostがマクロまみれだった。
2019/12/23(月) 21:01:02.33ID:wextYSDX
c++11以降の目的の一つがマクロつぶしだからな。
2019/12/23(月) 21:24:59.81ID:kZpvALBe
>>39
boostはまだ言語仕様で標準化されていない機能を標準化された機能で実現しようとしている部分が多いから、自然とマクロでどうにかしなきゃならない箇所が多いんだろう
boostはまだ言語仕様で標準化されていない機能を標準化された機能で実現しようとしている部分が多いから、自然とマクロでどうにかしなきゃならない箇所が多いんだろう
2019/12/24(火) 03:50:11.29ID:1TojzXfm
>>40
捨てるためにゴテゴテとよけいな機能をつけなくても、
スコープ内だけで有効なローカルマクロ的なものを導入すればそれで良かったような気がしなくもないが、
#includeが絡むとやっぱだめかなw
捨てるためにゴテゴテとよけいな機能をつけなくても、
スコープ内だけで有効なローカルマクロ的なものを導入すればそれで良かったような気がしなくもないが、
#includeが絡むとやっぱだめかなw
2019/12/24(火) 05:03:51.44ID:ZHC84Kgk
今さらEmscripten使ってwasm化してみたけどそこそこ使えそう
2019/12/24(火) 06:19:47.03ID:Dtupe+iE
いまさらかよ!
2019/12/24(火) 07:00:24.75ID:Zba7/+kU
マクロというかプリプロセスの一部を言語規格内に取り込まないと無理なんだろ
2019/12/24(火) 07:02:33.85ID:cUFUrp77
C++が進化してもマクロは無くならない
2019/12/24(火) 14:34:27.28
せめてなくそうとはしろ
2019/12/24(火) 15:28:29.91ID:mUUuTbFd
マクロは正義
今日もいくつも生やした
今日もいくつも生やした
2019/12/24(火) 15:40:51.62
マクロについて、江添はなんて言ってる?
2019/12/24(火) 15:46:02.23ID:VueyJ5PW
自分で読めば
51デフォルトの名無しさん
2019/12/24(火) 16:14:08.15ID:qpZ25SUC 逆にマクロが進化する可能性は。
2019/12/24(火) 16:15:20.38ID:Uve8u0PJ
それはやだねえ
2019/12/24(火) 17:12:20.17ID:iCGyxCxX
マクロの進化を考えてみた
マクロは型に対応していないのが問題なので、まず型を導入する
しかし完全に常に型を必要としてしまうと普通の関数や変数と違いがなくなるので
コンパイル時に決定できる場合に限り、ジェネリックに何でも受けいれるようにする
・・あ、そうだ同じ名前で複数の宣言を可にして、それのうち一つでもコンパイルエラーで
ないなら他は無視して、コンパイルできるもののみ有効とかにすると色々つかえるかもしれないな
たとえばある構造体に特定のメンバがあるかどうかでコンパイル時に処理を分岐するとか
マクロは型に対応していないのが問題なので、まず型を導入する
しかし完全に常に型を必要としてしまうと普通の関数や変数と違いがなくなるので
コンパイル時に決定できる場合に限り、ジェネリックに何でも受けいれるようにする
・・あ、そうだ同じ名前で複数の宣言を可にして、それのうち一つでもコンパイルエラーで
ないなら他は無視して、コンパイルできるもののみ有効とかにすると色々つかえるかもしれないな
たとえばある構造体に特定のメンバがあるかどうかでコンパイル時に処理を分岐するとか
2019/12/24(火) 17:42:03.17ID:OCcxjFNd
テンプレートですか?
2019/12/24(火) 17:44:14.13ID:vOfEkls8
マクロと言えばマクロアセンブラ
C/C++のマクロより高機能なので見てみると良い
C/C++のマクロより高機能なので見てみると良い
2019/12/24(火) 18:10:27.35ID:Uve8u0PJ
MASMのマクロと比べるべきはテンプレートだろ
2019/12/24(火) 18:17:05.63
C++コードをプリプロセスする専用の新規言語を発明すれば!
58デフォルトの名無しさん
2019/12/24(火) 18:31:34.23ID:IBUEMR4t >>53
それどこのtemplate
それどこのtemplate
59デフォルトの名無しさん
2019/12/24(火) 18:33:07.30ID:IBUEMR4t >>57
それどこのQt
それどこのQt
2019/12/24(火) 18:44:21.54ID:Uve8u0PJ
>>57
それはcfrontといって世界最古のC++だ
それはcfrontといって世界最古のC++だ
2019/12/24(火) 19:43:07.15ID:cUFUrp77
>>56
テンプレートとは違う
テンプレートとは違う
2019/12/24(火) 19:53:54.69ID:SdQqxQDy
>>60
そうか、C++11 or later を食らうをプリプロセッサーがウけるのか…
そうか、C++11 or later を食らうをプリプロセッサーがウけるのか…
2019/12/24(火) 20:06:18.60ID:ed+tLMlR
rustのようなマッチングでやるとか
他にはASTのAPI提供するとか
あとはlispみたいにやるとか
c/c++よりまともなやり方はあるけど正直どれもややこしいし上に
めんどくさいんだよね
他にはASTのAPI提供するとか
あとはlispみたいにやるとか
c/c++よりまともなやり方はあるけど正直どれもややこしいし上に
めんどくさいんだよね
2019/12/24(火) 20:10:21.58ID:ed+tLMlR
メタプログラミングにおいてあえてチューリング不完全にしちゃうってのは
悪くないデザインチョイスだと思うんだよね
すがすがしい
悪くないデザインチョイスだと思うんだよね
すがすがしい
2019/12/24(火) 21:38:38.95ID:4c9jV6+e
てかその手の糞みたいな発想はlispでやりつくされてる。
バカが知らないだけで。
バカが知らないだけで。
2019/12/24(火) 22:07:05.33ID:E1PNjCWX
includeでテキストファイルを文字列literalとして読み込んだり、CSVファイルを行毎に指定の変換で読み込んだりしたい
外部プログラムで変換するのがめんどい
外部プログラムで変換するのがめんどい
2019/12/24(火) 22:10:34.81ID:UL4fNRBx
なんとかいうプログラミングの偉いひとがいってたんだけど
「凡人が斬新な発想と思っている事の5割は既に誰かがやっており
残り5割は斬新ではなくそもそも機能しない」らしい
「凡人が斬新な発想と思っている事の5割は既に誰かがやっており
残り5割は斬新ではなくそもそも機能しない」らしい
2019/12/24(火) 22:34:55.01
よい子のみんな!のAAにもあるとおり
70デフォルトの名無しさん
2019/12/25(水) 12:25:41.21ID:2ymVLaRc 最強のC++はC++の道から外れないこと
2019/12/25(水) 13:27:29.92
C++のタオとは?
72デフォルトの名無しさん
2019/12/25(水) 14:04:21.60ID:VS52OTGY 振り返るとそこに道が出来ているってことでは。
2019/12/25(水) 15:20:11.91ID:R5R0tFog
c++ natureを極めるためにはc++公案で鍛えるしかない
2019/12/28(土) 19:48:57.63ID:8w0fwfLC
主要コンパイラはすべてサポートしているにも関わらずいまだに#pragma onceを使わない人が少なくないのはなぜ?
2019/12/28(土) 20:16:53.24ID:CXPtawUE
onceはclang-clにしたら文句言われた。
>>74
#if defined() / #ifdef で十分ですから
#progma once が規格に取り込まれでもしないかぎり状況はかわらないでしょうね
#progma once の優位性はなんでしょうか
#if defined() / #ifdef で十分ですから
#progma once が規格に取り込まれでもしないかぎり状況はかわらないでしょうね
#progma once の優位性はなんでしょうか
2019/12/28(土) 20:24:49.66ID:8w0fwfLC
一行で済む
万が一のdefineの衝突が起こらない
万が一のdefineの衝突が起こらない
2019/12/28(土) 20:34:45.01ID:izuDiHMA
今はgccでもつかえるんだっけか
2019/12/28(土) 20:40:53.71ID:8w0fwfLC
3.4.xのどこかで対応してるからもう10年以上前の話
80デフォルトの名無しさん
2019/12/28(土) 21:01:17.79ID:pepWReU2 VSについてくるclang-clはpragma once普通に使えてる。
81デフォルトの名無しさん
2019/12/28(土) 21:03:08.62ID:pepWReU2 いまcl、clang-cl、gccでチェックしてるけど、pragma onceは使えてる。
2019/12/28(土) 21:15:39.80ID:oW0/scDi
#pragma once
と書いておけばperlで#if defined() / #ifdefに直せる
と書いておけばperlで#if defined() / #ifdefに直せる
2019/12/28(土) 21:32:47.05ID:jUBDgrWb
標準化してくれれば良いのに
pragmaで出来ることの範疇越えている気はするけど
pragmaで出来ることの範疇越えている気はするけど
2019/12/28(土) 21:48:20.70ID:isXVaWAp
他のもろもろと合わせてモジュールに移行することで済ませるつもりなんでしょ。
2019/12/29(日) 01:41:15.83ID:BmrLXJpy
そういやまだモジュールサポートしてるコンパイラないな
2019/12/29(日) 01:54:26.89ID:KMgGrgwo
exportみたいになりませんように
87デフォルトの名無しさん
2019/12/29(日) 04:54:11.67ID:Q9hr3WtC C#だとis演算子を利用してキャスト可能か判定していますが、
C++でdynamic_castでキャスト可能かってどう判断すればよいのでしょうか?
後、static_castできるかどうかの判定はどうすればよいのでしょうか?
C++でdynamic_castでキャスト可能かってどう判断すればよいのでしょうか?
後、static_castできるかどうかの判定はどうすればよいのでしょうか?
88デフォルトの名無しさん
2019/12/29(日) 05:54:33.33ID:Jtzyjysr2019/12/29(日) 08:13:14.15ID:IGe5Ocj7
dynamic_castがnullptrを返すかどうかで判断
if (auto dp = dynamic_cast<Derived*>(bp)) {
(dpを使った処理)
}
if (auto dp = dynamic_cast<Derived*>(bp)) {
(dpを使った処理)
}
2019/12/29(日) 08:30:34.84ID:e4b1FoNz
91デフォルトの名無しさん
2019/12/29(日) 10:22:08.63ID:3P5H5aUL テトリスでプログラミングの基礎は身につくますか?
2019/12/29(日) 10:25:16.33ID:BmrLXJpy
いいえ
2019/12/29(日) 10:27:06.48ID:OzwmxFfF
2019/12/29(日) 10:43:20.20ID:iKwMwrMu
2019/12/29(日) 11:38:43.95ID:G7raGgQx
江添の最近出した本、このスレ的にはどういう評価なの?
2019/12/29(日) 13:32:59.69ID:KIjz0jVz
江添亮のC++入門、2019/9
こんな本を出していたのかw
関係ないけど、漏れは、下の本を読んでる。
短くまとめられていて良い
[改訂第3版]C++ポケットリファレンス、高橋 晶 ほか、2018
こんな本を出していたのかw
関係ないけど、漏れは、下の本を読んでる。
短くまとめられていて良い
[改訂第3版]C++ポケットリファレンス、高橋 晶 ほか、2018
9896
2019/12/29(日) 14:38:45.96ID:KIjz0jVz 江添亮、επιστημη[エピステーメー]、高橋晶とか、
日本のC++標準化委員会のメンバーは、伝道師みたいな香具師が多い
本をよく書く
日本のC++標準化委員会のメンバーは、伝道師みたいな香具師が多い
本をよく書く
2019/12/29(日) 15:16:08.73ID:mv3qVHGb
まあ、猫でもなんとかとか、スッキリわかるとか、柴田よりはましだろw
101デフォルトの名無しさん
2019/12/29(日) 15:40:38.44ID:G5unUlDw エピはサンプルコードの題材が全部タイマーのイメージ
102デフォルトの名無しさん
2019/12/30(月) 02:16:44.05ID:uy9KH9fJ >>98
その3人全員委員会のメンバーなの?江添だけだと思ってたが
その3人全員委員会のメンバーなの?江添だけだと思ってたが
103デフォルトの名無しさん
2019/12/30(月) 10:20:13.91ID:iZxqjmO+ sizeof(void)がビルドが通らないorz
void型を渡すときのテンプレートの特殊化ってどう書けば良いんじゃ…
void型を渡すときのテンプレートの特殊化ってどう書けば良いんじゃ…
104デフォルトの名無しさん
2019/12/30(月) 10:47:48.49ID:obTerxTG は?
105デフォルトの名無しさん
2019/12/30(月) 10:54:41.38ID:fYgKDGaZ サンプルコードプリーズ
106デフォルトの名無しさん
2019/12/30(月) 11:15:51.02ID:g0RN7zwT sizeof(void)がだめだからT=voidだけ特殊化したいということだろ?
なにも特別なことはないと思うが。
https://ja.cppreference.com/w/cpp/language/template_specialization
なにも特別なことはないと思うが。
https://ja.cppreference.com/w/cpp/language/template_specialization
10796
2019/12/30(月) 23:04:11.87ID:p3QJuMJ/ >>102
C++テンプレートテクニック―簡潔で再利用しやすいコードのためのC++活用術、2009
著者の紹介文に、こう書いてある
επιστημη[エピステーメー]
C++標準化委員会会員
高橋晶
1985年生まれ。2008年05月からC++標準化委員会にエキスパートとして参加
(本データは、この書籍が刊行された当時に掲載されていたものです)
C++テンプレートテクニック―簡潔で再利用しやすいコードのためのC++活用術、2009
著者の紹介文に、こう書いてある
επιστημη[エピステーメー]
C++標準化委員会会員
高橋晶
1985年生まれ。2008年05月からC++標準化委員会にエキスパートとして参加
(本データは、この書籍が刊行された当時に掲載されていたものです)
108デフォルトの名無しさん
2019/12/31(火) 04:04:35.24ID:rzJRcJt/ まじかよ
正直ソフト開発してないライターがやたら参加してんのはどうかと思うけどなぁ
正直ソフト開発してないライターがやたら参加してんのはどうかと思うけどなぁ
109デフォルトの名無しさん
2019/12/31(火) 06:39:04.13ID:K+WZPcbo でもお前らの100倍詳しい
110デフォルトの名無しさん
2019/12/31(火) 07:04:20.12ID:yGRo5VMJ まぁ規格の解説とかはそういうのに関わってる人にしてもらうのが一番いいんじゃない?
111デフォルトの名無しさん
2019/12/31(火) 07:29:37.36ID:rzJRcJt/ まぁ解説とかはそうだし有難いんだけどね
ちょっと日本のライター(に限らないのかもしれんけど)は自分でがっつり使い込んでもないテクニックを
「もしかしたら役に立たないかもしれない」との疑い全く無しに押し付けてることがあるしたまに宗教じみてるから
そういう人ばかりだと今後が不安だなぁと
それだけw
ちょっと日本のライター(に限らないのかもしれんけど)は自分でがっつり使い込んでもないテクニックを
「もしかしたら役に立たないかもしれない」との疑い全く無しに押し付けてることがあるしたまに宗教じみてるから
そういう人ばかりだと今後が不安だなぁと
それだけw
112デフォルトの名無しさん
2019/12/31(火) 07:57:16.28ID:K+WZPcbo 運用するのはお前らの仕事
113デフォルトの名無しさん
2019/12/31(火) 08:08:20.03ID:8dhupYNq 技術書籍は著者の思想に染まらなくても
そこに書いてあるアイディアを欲しいとこだけつまみ食いが
デフォな読み方だろ
そこに書いてあるアイディアを欲しいとこだけつまみ食いが
デフォな読み方だろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★2 [ぐれ★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★7 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… [BFU★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- インバウンド激減…「何のための円安なのか」 [667744927]
- 高市早苗「つい言い過ぎた」公邸で一人ひきこもる😲 [861717324]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
- 中国「水産物輸入停止は高市首相の発言が理由」 [256556981]
- 高市はわかっていない、発言撤回や中国に謝罪してもネトウヨは「さすが!」「実を取った!」と持て囃してくれることを [452836546]
- 中国「次に禁止してほしいものを教えて」 [358382861]
