次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
C++相談室 part140
https://mevius.5ch.net/test/read.cgi/tech/1547326582/
C++相談室 part141
https://mevius.5ch.net/test/read.cgi/tech/1550772463/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
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
C++相談室 part142
■ このスレッドは過去ログ倉庫に格納されています
2019/04/01(月) 22:17:05.84ID:wmfpIKt/
498デフォルトの名無しさん
2019/05/06(月) 17:37:57.33ID:ecbY6TsO コンストラクタの引数に出力先stringインスタンスを渡すostream派生クラスを作ればいいじゃない。
string str;
hogestream sstr(str);
sstr << "hoge" << 128;
string str;
hogestream sstr(str);
sstr << "hoge" << 128;
499デフォルトの名無しさん
2019/05/06(月) 17:42:30.68ID:B4KNKrTg 別にstringstreamで良いじゃない
500デフォルトの名無しさん
2019/05/06(月) 17:42:46.83ID:B4KNKrTg 別にstringstreamで良いじゃない
501デフォルトの名無しさん
2019/05/06(月) 18:13:11.14ID:L6nFhRY+ iostreamの<<はC++の黒歴史の一つだね
502はちみつ餃子 ◆8X2XSCHEME
2019/05/06(月) 18:19:09.50ID:K/rO19sE stream の機能はいらんからとにかく文字列に差し込むだけ出来ればいいってのなら
単に operator<< を定義すれば出来るけど……。
https://wandbox.org/permlink/dIkEh0LDZEixGoiF
単に operator<< を定義すれば出来るけど……。
https://wandbox.org/permlink/dIkEh0LDZEixGoiF
503デフォルトの名無しさん
2019/05/06(月) 18:27:12.43ID:ecbY6TsO >>499,500,501
ostream派生クラスじゃなくて独自のクラスのほうが軽量でいい。
stringインスタンスへのポインタのほかに、数値書き込み時の進数設定(oct,dec,hexを覚えておく)などをメンバ変数に持てばOK。
ostream派生クラスじゃなくて独自のクラスのほうが軽量でいい。
stringインスタンスへのポインタのほかに、数値書き込み時の進数設定(oct,dec,hexを覚えておく)などをメンバ変数に持てばOK。
504デフォルトの名無しさん
2019/05/06(月) 18:58:24.90ID:oGUqqIoM >>502
をを、なるほど、これは素晴らしいw
をを、なるほど、これは素晴らしいw
505デフォルトの名無しさん
2019/05/06(月) 21:02:54.05ID:ZJRraXBB >>492
stringstream・・・
stringstream・・・
506デフォルトの名無しさん
2019/05/07(火) 19:51:10.38ID:FbrTB0S1 basic_ostream使えよっていつも思う
なんで決め打ちするのかわからない
なんで決め打ちするのかわからない
507デフォルトの名無しさん
2019/05/08(水) 21:52:50.27ID:iQQm+nuQ to_charsというものをみつけました。
508デフォルトの名無しさん
2019/05/09(木) 18:03:02.17ID:PdPEbd3c b配列全てをa配列のケツにコピーするとき
std::vector<char> a;
char b[]={0,1,1,3,4};
a.insert(a.begin(),&b[0],&b[sizeof b]);
これでいいの?
&b[sizeof b]
これが死ぬほど気持ち悪いんだけど
std::vector<char> a;
char b[]={0,1,1,3,4};
a.insert(a.begin(),&b[0],&b[sizeof b]);
これでいいの?
&b[sizeof b]
これが死ぬほど気持ち悪いんだけど
509デフォルトの名無しさん
2019/05/09(木) 18:18:44.76ID:JXKWFyOS そんな気色悪い書き方しなくてもこれでいいよ
a.insert(a.end(), std::begin(b), std::end(b));
a.insert(a.end(), std::begin(b), std::end(b));
510デフォルトの名無しさん
2019/05/09(木) 18:25:51.81ID:PdPEbd3c なるほど!ありがとう
511はちみつ餃子 ◆8X2XSCHEME
2019/05/09(木) 18:44:16.05ID:IVoLxnXn >>508-509
std::copy に back_inserter を渡す方が効率的という豆知識。
std::copy に back_inserter を渡す方が効率的という豆知識。
512デフォルトの名無しさん
2019/05/09(木) 18:53:31.44ID:vbHvKAwn513デフォルトの名無しさん
2019/05/09(木) 23:40:45.34ID:q7ofaYCv アルゴリズムよりvector::insertのほうが実装による最適化の余地は大きそうだな
514デフォルトの名無しさん
2019/05/10(金) 00:47:30.50ID:5C678nxv ポインタがイテレータとして渡された時点で相手が連続バッファだってわかるからね
515デフォルトの名無しさん
2019/05/10(金) 11:00:01.95ID:KAkBQh2y &b[sizeof b]でもstd::end(b)でもやってることは変わらないんだけどな
見映えは重要だな
見映えは重要だな
516デフォルトの名無しさん
2019/05/10(金) 11:08:59.15ID:pPfi71KH sizeof bじゃcharでしか使えないんで、そういう意味でもイケてないかも
517はちみつ餃子 ◆8X2XSCHEME
2019/05/10(金) 12:01:59.87ID:g2QrvVju518デフォルトの名無しさん
2019/05/10(金) 19:02:43.61ID:UhKi+qPE 嫌儲で、東京五輪チケットのソースコードが出てるけど
C++使ってるお前らなら、こんなソースコードじゃないよね?
https://gogotsu.com/wp-content/uploads/2019/05/01-9.jpg
C++使ってるお前らなら、こんなソースコードじゃないよね?
https://gogotsu.com/wp-content/uploads/2019/05/01-9.jpg
519デフォルトの名無しさん
2019/05/10(金) 19:05:10.83ID:curN/h5M >>518
サーバーサイドあまりやってないけどこんな泥臭い書き方するのか
サーバーサイドあまりやってないけどこんな泥臭い書き方するのか
520デフォルトの名無しさん
2019/05/10(金) 19:05:16.55ID:TAwz/zT/ javascriptやん
521デフォルトの名無しさん
2019/05/10(金) 19:36:57.50ID:tfYAY6pz こんなもんだろ
SIerが間違ってコンシューマ系のWeb制作を請けてしまうとこんな感じになる
SIerが間違ってコンシューマ系のWeb制作を請けてしまうとこんな感じになる
522デフォルトの名無しさん
2019/05/10(金) 21:47:05.61ID:oOPMkjEw てかこんなもの韓国に出すのね
安くなさそう
ってもしや北の方?
安くなさそう
ってもしや北の方?
523デフォルトの名無しさん
2019/05/10(金) 21:53:19.07ID:oOPMkjEw parseInt(Num).lengthって動かなそう
524デフォルトの名無しさん
2019/05/10(金) 21:57:58.16ID:TAwz/zT/ ほんまやw桁でも返ってくるのかと思ったがundefinedじゃんかw
525デフォルトの名無しさん
2019/05/10(金) 22:59:11.84ID:HK1/2Yro 型に無駄にこだわった結末がstreamと知っとくのは重要。
あの間違いを覚えとけ。
あの間違いを覚えとけ。
526デフォルトの名無しさん
2019/05/10(金) 23:25:31.58ID:u3uVdMgu ゲームのシーンを管理するクラスとシーンクラスがあり、管理するクラスはシーンクラスを保持しています
シーンクラスから管理クラスのシーンチェンジを行う関数を呼び出したいのですがどうやったらいいでしょうか
シーンクラスが管理クラスのインスタンスを持ちたくありません
シーンクラスから管理クラスのシーンチェンジを行う関数を呼び出したいのですがどうやったらいいでしょうか
シーンクラスが管理クラスのインスタンスを持ちたくありません
527デフォルトの名無しさん
2019/05/10(金) 23:30:31.35ID:0WVRNDv3 >>518
webにあげるなら難読化まではしないにしても最低限圧縮するよね
webにあげるなら難読化まではしないにしても最低限圧縮するよね
528デフォルトの名無しさん
2019/05/10(金) 23:55:31.69ID:tshfuAdx >>526
シーンクラスに管理クラスへの参照(ポインタ)を持たせればいいんじゃないのか
シーンクラスに管理クラスへの参照(ポインタ)を持たせればいいんじゃないのか
529デフォルトの名無しさん
2019/05/11(土) 03:16:15.93ID:xsmcwCcm 早速情報漏洩やらかしたの?
530デフォルトの名無しさん
2019/05/11(土) 10:30:07.92ID:f5HniSEP >a.insert(a.begin(),&b[0],&b[sizeof b]);
>
これ、添字オーバーしてるけどメモリエラーとかにならないの?
>
これ、添字オーバーしてるけどメモリエラーとかにならないの?
531デフォルトの名無しさん
2019/05/11(土) 10:54:36.87ID:RjxICFG6532デフォルトの名無しさん
2019/05/11(土) 11:55:52.83ID:Y1ZlGg0p >>530
アクセスしてるからダメそう
アクセスしてるからダメそう
533デフォルトの名無しさん
2019/05/11(土) 12:40:07.82ID:3XjGQ6E0 []はただのアドレス計算じゃん
534デフォルトの名無しさん
2019/05/11(土) 12:42:52.29ID:DVWj7ai3 &p[N]はp + Nと同じって規格にあったっけ?
535デフォルトの名無しさん
2019/05/11(土) 12:44:31.45ID:RjxICFG6 確かに&b[sizeof b]はデリファレンスしてるわ
これはあかんそう
これはあかんそう
536デフォルトの名無しさん
2019/05/11(土) 12:56:49.51ID:FaKAPAIh >>533
a[i]は a+i ではなく *{a+i}
a[i]は a+i ではなく *{a+i}
537デフォルトの名無しさん
2019/05/11(土) 13:12:17.25ID:2v2BzL6t 経験上出来るプログラマーは言語オタクが多いイメージ?(ただし浅い)
538デフォルトの名無しさん
2019/05/11(土) 18:44:16.82ID:fU686pnk &*pはデリファレンスなしで単にpと評価するってどっかで特別に決められてなかったっけ?
539デフォルトの名無しさん
2019/05/12(日) 06:58:46.18ID:x4ccFx6b540デフォルトの名無しさん
2019/05/12(日) 07:43:52.68ID:2y1+p9UL >>530
>>a.insert(a.begin(),&b[0],&b[sizeof b]);
>>
>
>これ、添字オーバーしてるけどメモリエラーとかにならないの?
508だけど、これは
a.insert(a.begin(),&b[0],&b[sizeof b]);
こっちの間違いです。ごめんなさい。
a.insert(a.end(),&b[0],&b[sizeof b]);
&b[sizeof b]);
この部分は
b+sizeof(b)
これなら問題ない感じ?
どちらでも動くけど、たまたまいてる可能性捨てきれないから不安なんだよね。
実際のソースはsizeof(b)がbに格納されているデータのサイズを示していて、
char b[256];
int s = read( fd, b, sizeof b);
a.insert(a.end(),&b[0],&b[s]);
みたいな感じで書いてます。
んで、b最大数来た場合にちゃんと動くか気になったというわけっす。
int s = read( fd, b, (sizeof b)-1);
無難にこれの方がいいですかね?
>>a.insert(a.begin(),&b[0],&b[sizeof b]);
>>
>
>これ、添字オーバーしてるけどメモリエラーとかにならないの?
508だけど、これは
a.insert(a.begin(),&b[0],&b[sizeof b]);
こっちの間違いです。ごめんなさい。
a.insert(a.end(),&b[0],&b[sizeof b]);
&b[sizeof b]);
この部分は
b+sizeof(b)
これなら問題ない感じ?
どちらでも動くけど、たまたまいてる可能性捨てきれないから不安なんだよね。
実際のソースはsizeof(b)がbに格納されているデータのサイズを示していて、
char b[256];
int s = read( fd, b, sizeof b);
a.insert(a.end(),&b[0],&b[s]);
みたいな感じで書いてます。
んで、b最大数来た場合にちゃんと動くか気になったというわけっす。
int s = read( fd, b, (sizeof b)-1);
無難にこれの方がいいですかね?
541デフォルトの名無しさん
2019/05/12(日) 11:19:05.13ID:k8bUqGvO542デフォルトの名無しさん
2019/05/12(日) 11:53:09.39ID:nuZIUjqi ややこしいからoperator <<を定義しようw
543デフォルトの名無しさん
2019/05/12(日) 15:25:00.10ID:8/5ODvoI VC++だと
std::vector<T> a; &a[a.size()]はoperator[]のassertionに引っかかるね
std::vector<T> a; &a[a.size()]はoperator[]のassertionに引っかかるね
544デフォルトの名無しさん
2019/05/12(日) 22:25:11.86ID:yr8YjJOU std::transformって並列処理されてますか?
545デフォルトの名無しさん
2019/05/12(日) 23:20:05.82ID:jFoQmc6B c++17のparallel版使えば並列実行されるかもしれない
546デフォルトの名無しさん
2019/05/13(月) 01:24:36.27ID:RKe/NLvg visual studioでC++17にしたけどいまいち並列版の使い方が分からなかった
普通にfor回すのと、OpenMP使ってfor並列化するのと、transform(非並列)使うの比較したら
OpenMP>普通にfor≧transform だった
普通にfor回すのと、OpenMP使ってfor並列化するのと、transform(非並列)使うの比較したら
OpenMP>普通にfor≧transform だった
547デフォルトの名無しさん
2019/05/13(月) 20:49:38.54ID:YS57w6Jq おとなしくpthead使えよ。
548デフォルトの名無しさん
2019/05/13(月) 20:56:12.40ID:WUu3P+2G 非並列使ったならそりゃそうなるだろ
549デフォルトの名無しさん
2019/05/16(木) 02:02:33.17ID:1v50lv4I struct AとAを継承したstruct Bがあって
Aの内容をBの共通部分にコピーする方法ってないですか?
A a;
B b = a;
みたいにしたいんですけど親を派生先にキャストはできないので困ってます
Aの内容をBの共通部分にコピーする方法ってないですか?
A a;
B b = a;
みたいにしたいんですけど親を派生先にキャストはできないので困ってます
550デフォルトの名無しさん
2019/05/16(木) 02:06:57.91ID:mZDDPYlt struct B : public A
{
B* operator=(const A& a){ this->hoge = a.hoge;}
};
これ初期時にも使えるんかな
{
B* operator=(const A& a){ this->hoge = a.hoge;}
};
これ初期時にも使えるんかな
551デフォルトの名無しさん
2019/05/16(木) 02:25:05.62ID:1v50lv4I コピーコンストラクタが実装できたとしてメンバ変数は1個ずつコピーするしかないですかね
552デフォルトの名無しさん
2019/05/16(木) 02:28:08.55ID:mZDDPYlt スライシングをさせるとか?
安全に?スライシング起こす方法ってあったっけな?
なんか危ういからやろうともしなかったが
安全に?スライシング起こす方法ってあったっけな?
なんか危ういからやろうともしなかったが
553デフォルトの名無しさん
2019/05/16(木) 06:25:17.13ID:/dAesd8e cloneメソッド用意するとか
554デフォルトの名無しさん
2019/05/16(木) 06:31:42.80ID:ebJ8HHSX >>549
初期化時は普通にコンストラクタ初期化リストで A(a) って書けるでしょ。残りのメンバをどうするのか知らんけど。
代入なら static_cast<A&>(b) = a か b.A::operator=(a) で済みそう。
初期化時は普通にコンストラクタ初期化リストで A(a) って書けるでしょ。残りのメンバをどうするのか知らんけど。
代入なら static_cast<A&>(b) = a か b.A::operator=(a) で済みそう。
555デフォルトの名無しさん
2019/05/16(木) 06:33:37.60ID:C3C4SHXA 普通にコンストラクタかオペレーター作ればいいんじゃね
B::B(const &A)
B::operator =(const &A)
A::operator B()
雑なキャストでよければdynamic_cast<A>でおk
B::B(const &A)
B::operator =(const &A)
A::operator B()
雑なキャストでよければdynamic_cast<A>でおk
556デフォルトの名無しさん
2019/05/16(木) 06:38:27.18ID:C3C4SHXA ↑dynamic_cast<B>の間違い
B b = dynamic_cast<B>(a);
B b = dynamic_cast<B>(a);
557デフォルトの名無しさん
2019/05/16(木) 11:40:14.21ID:74mGoL8y558デフォルトの名無しさん
2019/05/16(木) 17:20:00.24ID:PgzYowjZ 549です
解決しましたありがとうございます
以下のように書いたら思っていたことが出来ました
(派生先のコンストラクタで親のデフォルトコピーコンストラクタ呼べるの知りませんでした)
代入は現状使う予定がないので大丈夫です
B::B(const &A a) : A(a) {}
解決しましたありがとうございます
以下のように書いたら思っていたことが出来ました
(派生先のコンストラクタで親のデフォルトコピーコンストラクタ呼べるの知りませんでした)
代入は現状使う予定がないので大丈夫です
B::B(const &A a) : A(a) {}
559デフォルトの名無しさん
2019/05/16(木) 18:17:29.46ID:mr2QiBZl その内容だったら=defaultでいいよ
560デフォルトの名無しさん
2019/05/16(木) 21:32:58.41ID:/aEDSlbd 引数付きコンストラクタって、=default使えるの?
561デフォルトの名無しさん
2019/05/16(木) 22:09:55.18ID:jJO9F8Je 使えないよね
うかうかっと読み過ごしてたわw
うかうかっと読み過ごしてたわw
562デフォルトの名無しさん
2019/05/18(土) 13:00:29.63ID:M54jyEoh 大本営がおるで!!!
563デフォルトの名無しさん
2019/05/19(日) 21:52:57.08ID:sHpfouee 厳密にはC++の質問になるのかよく分からないんですが……
C++プライマーで勉強しててconstexprの部分にさしかかったんですけどコンパイル時評価、コンパイル時に評価される……みたいなことが書いてあるんですがこれの意味がいまいちよくわかりません
実行時評価という言葉も見られるんですがそれぞれの違いとそもそも評価ってどういう処理のことなんでしょうか
それとそもそもconstexprの使いみちが分かりません
よろしくおねがいします。
C++プライマーで勉強しててconstexprの部分にさしかかったんですけどコンパイル時評価、コンパイル時に評価される……みたいなことが書いてあるんですがこれの意味がいまいちよくわかりません
実行時評価という言葉も見られるんですがそれぞれの違いとそもそも評価ってどういう処理のことなんでしょうか
それとそもそもconstexprの使いみちが分かりません
よろしくおねがいします。
564デフォルトの名無しさん
2019/05/19(日) 22:10:21.84ID:H7yZimvS >>563
評価=機械語による演算。
コンパイル時評価とは、コンパイラ(PCなど)が演算してその結果を成果物に出力すること。
実行時評価とは実行機(スマホなど)でプログラム実行時に演算して利用すること。
評価=機械語による演算。
コンパイル時評価とは、コンパイラ(PCなど)が演算してその結果を成果物に出力すること。
実行時評価とは実行機(スマホなど)でプログラム実行時に演算して利用すること。
565デフォルトの名無しさん
2019/05/19(日) 22:21:54.17ID:Jw8g2++w constexprってのは#defineの置き換えのために生まれたんだよ
C++11以前はenum使ってたんだけどなんかかっこわるいから専用のキーワードが出来たってことさ
C++11以前はenum使ってたんだけどなんかかっこわるいから専用のキーワードが出来たってことさ
566デフォルトの名無しさん
2019/05/19(日) 22:26:05.40ID:yh9Mbv1R 1+2を計算するアプリ作るとするじゃん?
constexpr int a = 1 + 2;って書くじゃん?
でもこれaが3なの分かりきってるじゃん?
アプリをインストールした世界中のスマホでいちいち1+2=3って計算するの資源の無駄じゃん?
だからそういうコードを書いてコンパイルするとコンパイラが最初から「a=3」って埋め込んで世界資源の浪費を防ぐんだよ
これがコンパイル時評価
実行時評価は普通の電卓アプリがやってること
ユーザーが計算したいのは1+2か5×5かlog123456789かは使われてみるまでわからないので、おとなしくスマホのCPUと電池を使って計算する
これが実行時評価
constexpr int a = 1 + 2;って書くじゃん?
でもこれaが3なの分かりきってるじゃん?
アプリをインストールした世界中のスマホでいちいち1+2=3って計算するの資源の無駄じゃん?
だからそういうコードを書いてコンパイルするとコンパイラが最初から「a=3」って埋め込んで世界資源の浪費を防ぐんだよ
これがコンパイル時評価
実行時評価は普通の電卓アプリがやってること
ユーザーが計算したいのは1+2か5×5かlog123456789かは使われてみるまでわからないので、おとなしくスマホのCPUと電池を使って計算する
これが実行時評価
567デフォルトの名無しさん
2019/05/19(日) 22:27:31.23ID:c0f8nIXT const int n = 5;
const int m = n * 100;
要するにこうするとmを計算してくれる
const int m = n * 100;
要するにこうするとmを計算してくれる
568デフォルトの名無しさん
2019/05/19(日) 22:31:08.95ID:tquD1oX1 別にビルド構成に組み込めば済む話じゃね?くだらないな。
569デフォルトの名無しさん
2019/05/19(日) 22:51:01.09ID:HuWon3wi そんなことしなくてもソースコード中に普通のコードと一緒に書けるから
570デフォルトの名無しさん
2019/05/19(日) 23:25:27.63ID:L0Ufwo4O constexprはtemplateと組み合わせたときに真価を発揮する。
templateを実体化するときに、型や非型引数に加えて、変数や関数なども活用して複雑な条件をつけ、
実体化するコードをカスタマイズできるようになるからね。
templateを実体化するときに、型や非型引数に加えて、変数や関数なども活用して複雑な条件をつけ、
実体化するコードをカスタマイズできるようになるからね。
571デフォルトの名無しさん
2019/05/19(日) 23:34:14.21ID:+2TJ1Pbf それなんかわかりやすい具体例コード出来ます?
572デフォルトの名無しさん
2019/05/19(日) 23:36:46.24ID:oSFlthhy constexpre定数って配列の要素数に出来るということ以外に本質的な意味ってあるの?
そのへんがよくわからない
そのへんがよくわからない
573デフォルトの名無しさん
2019/05/19(日) 23:37:52.41ID:yh9Mbv1R 「constexpr 中3女子」でぐぐると変態コードがたくさん出てくるよ
574デフォルトの名無しさん
2019/05/19(日) 23:38:23.88ID:oSFlthhy 配列の要素数と非型テンプレートパラメータね
575デフォルトの名無しさん
2019/05/19(日) 23:38:52.26ID:L0Ufwo4O 分かりやすいかどうかは知らないが、以前ここ?で誰かが紹介していたnameofライブラリとか?
https://qiita.com/ta_dragon/items/1828ceb16bc8733526e1
c++17で導入されたstring_viewを使った文字列操作で、enum定義を文字列化してしまうってやつ。
https://qiita.com/ta_dragon/items/1828ceb16bc8733526e1
c++17で導入されたstring_viewを使った文字列操作で、enum定義を文字列化してしまうってやつ。
576デフォルトの名無しさん
2019/05/19(日) 23:41:56.16ID:yh9Mbv1R constexpr int f();
constexpr int a = f(); //OK
const int b = f(); //NG
違いってこれだけでしょ
constexpr int a = f(); //OK
const int b = f(); //NG
違いってこれだけでしょ
577デフォルトの名無しさん
2019/05/19(日) 23:42:38.19ID:yh9Mbv1R あれ?違うわ
無視して
無視して
578デフォルトの名無しさん
2019/05/19(日) 23:56:10.59ID:vshkspmO 変態じみたものとしてはコンパイル時cコンパイルがあるな。
http://kw-udon.hatenablog.com/entry/2016/12/03/201722
http://kw-udon.hatenablog.com/entry/2016/12/03/201722
579デフォルトの名無しさん
2019/05/20(月) 00:13:59.34ID:osDMULGu constexpr以前でも定数伝搬とか意識して書いてたところはあったはず、でもそれが本当に定数になっているのかはアセンブリ見ないと分からない
constexpr導入によってconstexpr変数の初期化は確実にコンパイル時に実行される、できなければエラー
同様の理由でconstexpr関数(コンパイル時にも実行可能な関数)が導入される
constexpr導入によってconstexpr変数の初期化は確実にコンパイル時に実行される、できなければエラー
同様の理由でconstexpr関数(コンパイル時にも実行可能な関数)が導入される
580デフォルトの名無しさん
2019/05/20(月) 00:26:47.75ID:TOLwHecl アセンブリ見なくても生成コード見ればよくね
581デフォルトの名無しさん
2019/05/20(月) 00:36:37.94ID:osDMULGu コンパイラのAST見るって事?
より困難では
より困難では
582デフォルトの名無しさん
2019/05/20(月) 03:36:27.47ID:68OGLTNB 単なる#define定数の代わりとしても名前空間が使える分価値はあるし
例えばconstexprでCRCを計算すれば文字列switchが可能になるとか難しいけど便利ではある
例えばconstexprでCRCを計算すれば文字列switchが可能になるとか難しいけど便利ではある
583デフォルトの名無しさん
2019/05/20(月) 08:10:49.52ID:lEqHTAQ5 それ普通にヘッダーファイル生成コードでも書いた方がいいだろ。。
そっちのが明らかに可読性、デバッグのしやすさ上だし。
こんなもんありがたがってるのはどうせmakeもまともに書けない連中だろう。
そっちのが明らかに可読性、デバッグのしやすさ上だし。
こんなもんありがたがってるのはどうせmakeもまともに書けない連中だろう。
584デフォルトの名無しさん
2019/05/20(月) 11:52:26.23ID:mpvIl0KS そうやって何十万ものヘッダファイルを生み出した例を知ってる。
585デフォルトの名無しさん
2019/05/20(月) 12:32:04.02ID:Eu4SldXI >>583
c++の規格内で完結するのと、make等の外部ツールを使うのとでは移植性が全然違うよ。
c++の規格内で完結するのと、make等の外部ツールを使うのとでは移植性が全然違うよ。
586デフォルトの名無しさん
2019/05/20(月) 12:47:56.71ID:DC309puZ 同じ記述でソースコード内に式が書け関数が使えるメリットは可読性に大きく影響するだろうに
587デフォルトの名無しさん
2019/05/20(月) 16:29:52.79ID:MZiC0WHg 外部ツール使えばいいはさすがに草
588デフォルトの名無しさん
2019/05/20(月) 18:36:37.69ID:a9u60dH4 configure なんて外部ツールを使ったソースファイルやヘッダーファイルを生成しまくりですが、新しい車輪の再発明ですか?
589デフォルトの名無しさん
2019/05/20(月) 19:28:03.54ID:MZiC0WHg configureできる純粋なWindowsはよ
590蟻人間 ◆T6xkBnTXz7B0
2019/05/20(月) 19:31:01.36ID:m/UtbRiI configureは古い。GitHubやるならCMake一択。
591デフォルトの名無しさん
2019/05/20(月) 19:35:30.06ID:ZjVO7Mes CMake使ってるけど、いろいろ使いにくい。
592デフォルトの名無しさん
2019/05/20(月) 19:47:55.36ID:MZiC0WHg configureより100億倍マシだとは思うけど
それはそうとしてwindowsでpkgconfig使わせて
それはそうとしてwindowsでpkgconfig使わせて
593デフォルトの名無しさん
2019/05/20(月) 20:04:37.87ID:IyGiubcZ CMakeって使いづらいよね
ターゲットの属性指定するのに
属性が先にくるんだもの
ターゲットの属性指定するのに
属性が先にくるんだもの
594デフォルトの名無しさん
2019/05/20(月) 21:22:56.75ID:VWEIYE4F Visual Studio(C#)のプログラミングに関する質問です。
インクルードする2ファイルが、双方のクラスを互いに必要とするケースにおいて、
コンパイルが通らなくて困っています。(当たり前なのですが…)
【Aファイル】
クラスAの定義{
クラスBの使用(インスタンス作成、メソッド利用)
}
【Bファイル】
クラスBの定義{
クラスAの使用(インスタンス作成、メソッド利用)
}
【全体インクルードファイル】
#include Aファイル
#include Bファイル
【コンパイル結果】
Bクラスが存在しません(Aファイルにて)
【質問】
お互いにクラス定義を必要とする場合、
★具体的に★どのような実装をすれば良いのでしょうか?
インクルードする2ファイルが、双方のクラスを互いに必要とするケースにおいて、
コンパイルが通らなくて困っています。(当たり前なのですが…)
【Aファイル】
クラスAの定義{
クラスBの使用(インスタンス作成、メソッド利用)
}
【Bファイル】
クラスBの定義{
クラスAの使用(インスタンス作成、メソッド利用)
}
【全体インクルードファイル】
#include Aファイル
#include Bファイル
【コンパイル結果】
Bクラスが存在しません(Aファイルにて)
【質問】
お互いにクラス定義を必要とする場合、
★具体的に★どのような実装をすれば良いのでしょうか?
595デフォルトの名無しさん
2019/05/20(月) 21:26:14.46ID:lEqHTAQ5 本当に複雑な計算が必要な定数なんてそんな多くないだろうに。。
やっぱバカしかいねーのな。。
やっぱバカしかいねーのな。。
596デフォルトの名無しさん
2019/05/20(月) 21:28:50.53ID:TjPZT1E7 具体的には実装回答しないけど前方宣言
597デフォルトの名無しさん
2019/05/20(月) 21:29:24.12ID:68OGLTNB >>594
C#?
C#?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 農林水産省「春頃にはコメ価格落ち着くのでは」新米の取引価格、過去最高を更新。 [256556981]
