[過去ログ] C++相談室 part137 (993レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(3): 2018/07/14(土)17:53 ID:FOAGvAbs(1/2) AAS
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part135
2chスレ:tech
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
省9
894: 2018/08/19(日)15:04 ID:5+hPFDRj(4/6) AAS
こういうのは怖いもの見たさみたいなのもあると思うし
これだけでコンパイルして動くものでもないので一応ソースコード
あまりにもアレで、そっ閉じだろうけど
外部リンク[cpp]:www.geocities.jp
コンパイル済みのソフトは
外部リンク[html]:www.geocities.jp
からダウンロードできる
非同期処理に俺が思いついた横断的でトリッキーなアイデア
外部リンク:qiita.com
↑が使われている
省10
895: 2018/08/19(日)15:07 ID:5+hPFDRj(5/6) AAS
庶民には理解できなくても
プログラマであるあなたたちなら
ピン止めできるツリービューが如何に画期的か理解できると思うんだよね
タスクバーでも何でもピン止めの時代なのに
ツリービューもピン止めできて良いと思うのよね
896: 2018/08/19(日)15:09 ID:5+hPFDRj(6/6) AAS
ああ、ツールバーとかスクロールバーとかのレベルで
全部フルスクラッチでDirectXで手書きだから
897: 2018/08/19(日)16:00 ID:RqnFNWUi(3/3) AAS
庶民なる俺様にはピン留出来ることの利点がわからん
898: 2018/08/19(日)20:23 ID:qaYG8ur7(2/2) AAS
サクラエディタが優秀だということは分かった
899: 2018/08/19(日)21:38 ID:Vpx5N+CG(1) AAS
見て欲しくて我慢できなかったんだな
900(2): ◆QZaw55cn4c 2018/08/19(日)22:28 ID:bW/fB7v7(1) AAS
>>711
外部リンク:www.amazon.co.jp
901(3): 2018/08/20(月)08:03 ID:4c85aa3D(1) AAS
>>900
Makeって何?
902: 2018/08/20(月)14:14 ID:PcIDGZDw(1) AAS
>>901
来年にはSunOSにも移植される予定の超最新自動ビルドツールの紹介だよ!
903: 2018/08/20(月)15:49 ID:YVC1gYT/(1) AAS
>>901
オライリーがおかしな実験をする本だよ
904(1): ◆QZaw55cn4c 2018/08/20(月)18:47 ID:VU5jvdn2(1/2) AAS
>>901
昔から使われている原始的といってよいビルドツールです
makefile に依存関係を書いておいて、コマンドラインで「 make -j」と起動すると、記述した依存関係にしたがってコンパイル・リンクが行われます
905: 2018/08/20(月)18:59 ID:ftO9aq8g(1) AAS
Linuxなんかで配布されたソースから実行ファイルを作成したいって時にお世話になります
906(1): 2018/08/20(月)20:29 ID:MlhHAxXO(1) AAS
>>904
この本を読めばコンパイルについても分かるの?
907: ◆QZaw55cn4c 2018/08/20(月)20:46 ID:VU5jvdn2(2/2) AAS
>>906
>>900 は make を C で記述するものであり、コンパイル自体について記述するものではありません
908: 2018/08/20(月)23:46 ID:qkN29+U3(1) AAS
クラス生成に挫折したのかな?w
909: 2018/08/21(火)00:03 ID:Y1eCmHG/(1/3) AAS
C++自体の本はたくさんあるのにビルドやプロジェクト構成について解説した本って全くないよな
コピペで受け継いできた秘伝のMakefileやconfigureが蔓延してるのなんとかしてくれ
売れないだろうがCMakeの解説本が一冊欲しい
910: 2018/08/21(火)00:06 ID:FygfW+En(1) AAS
cmake はつい最近のVisual Studio 2017アップデートで標準インストールされるようになったから潜在需要あるかもね…。
911(1): 2018/08/21(火)00:51 ID:zakr4cIe(1/2) AAS
なんでビルドツールっていつも怪物化しちゃうんだろうな
makeがもう誰も手に負えない怪獣のくせにずっと定番に居座ってて、「Makefileを作るツール」が乱立してそれぞれ怪物化してるの勘弁してほしい
912: ◆QZaw55cn4c 2018/08/21(火)01:03 ID:Wpz7rvAB(1) AAS
>>911
>makeがもう誰も手に負えない怪獣
make ですら怪獣になるのだったら、他の高機能ビルドツールはとっくに破綻している現状だったのか!と、ふと
913: 2018/08/21(火)01:35 ID:mIqstMqN(1/2) AAS
makefileなんて複雑な事求めないなら手でかけるレベルだよ
これが複雑で手に負えないとなると、プログラミングも怪しくなる
914: 2018/08/21(火)01:36 ID:Y1eCmHG/(2/3) AAS
ビルドについての教育がないがしろにされてるのが全ての元凶
ある程度以上の規模のプロジェクトを構成するベストプラクティスが示されているところを見たことがない
適当に好きなところから取ってきて動けばいいやくらいに改変して使ってるのが現状
915(1): 2018/08/21(火)07:06 ID:agJOmNk0(1) AAS
丁寧に書いてるのはこれくらい。
外部リンク[pdf]:aegis.sourceforge.net
916: 2018/08/21(火)11:19 ID:zakr4cIe(2/2) AAS
複雑なことをしたいからビルドツールを使うわけでしてねぇ・・・
917(1): 2018/08/21(火)11:24 ID:mIqstMqN(2/2) AAS
したいという意思があるなら、がんばって理解も出来るだろう
そこまでしなくても、最低限のルール覚えれば使える
918(1): 2018/08/21(火)11:53 ID:gERn4ySS(1/2) AAS
>>915
goto有害説をもじってるんだなw
Makefileを書いていていつも思うのは
ソースファイルの依存関係はソースファイルの中に書いてあるのに
それをまた二度手間で書かねばならないのがイヤ
面倒くさいのはともかく間違えやすいから
919(2): 2018/08/21(火)12:20 ID:JvEAafEP(1) AAS
>>918
automake とか gcc -MM とかの話?
920: 2018/08/21(火)12:38 ID:Dn6CvPAP(1) AAS
rustとc++どっちも使ってる人いる?
921: 2018/08/21(火)12:59 ID:gERn4ySS(2/2) AAS
>>919
gcc -MMか、いいこと聞いた
ありがとう
922: 2018/08/21(火)13:56 ID:Y1HyydAv(1) AAS
>>919
詳しい解説サンクス
こんなのがあったのか
923: 2018/08/21(火)16:55 ID:59eaeAGG(1) AAS
>>917
ここで根性論とはセンスあるわ
もちろんエンジニアでなく笑いの
924: 2018/08/21(火)17:26 ID:/1sxYxCd(1) AAS
エンジニアでなく園児にゃ
925: 2018/08/21(火)19:40 ID:Y1eCmHG/(3/3) AAS
WindowsでCMakeはfind_packageでだいたい詰む
vcpkgで対応できなければ結局自分で書くはめになり、面倒くさくなってmingw使うかVSのプロジェクトと同居することになる
926(1): 2018/08/22(水)16:26 ID:BT6ndhEb(1) AAS
C++ とは直接関係ないけど make/Makefile は擬似ターゲットを使って
バッチ的な定型処理を1個のファイルでまとめて管理できるのが便利でね。
make find WORD=...
全ソースから WORD= で指定した単語を含む行を検索、みたいな。
自分で作った便利ターゲットの使い方を usage: に書いとくのを忘れるけど。
927: 2018/08/22(水)17:38 ID:ua+EoSC8(1) AAS
>>926
perlでok
928: 2018/08/22(水)19:10 ID:lMaJ9TV4(1) AAS
C言語のビルドシステムならC言語で書けるようにするべきだと思うのだがよく分からない専用の言語を使わされるのは何故
この手のスクリプト言語は可読性がデバッガもないから中身を探るのが難しすぎる
929: 2018/08/22(水)19:27 ID:J6lVaoNe(1) AAS
君がそれを作って公開してみれば良いと思うんだが
930: 2018/08/22(水)20:50 ID:4/HlUcDP(1/2) AAS
C++のビルドツールといえばboostでお馴染みのbjam
実質boost専用に作ってるだけなのにあんな聳え立つ糞の山になっちゃうんだからビルドツールって怖いね
931(1): 2018/08/22(水)22:31 ID:G7PvCZFg(1) AAS
ソフト名がまだ決まっていないけどプログラム開発がスタートするって一般的だと思うんですが、
こういうときってコードネームを付けますよね?
このとき、VisualStudioのプロジェクト名もコードネームにしますよね?
アプリのウィンドウキャプションとかはアプリ名が決まり次第反映させられますけど、
プロジェクト名は途中で変えられないので、そのままになってしまいますが、しょうがないですよね?
要は社内の開発で問題なければOKで、
リリースしたときにコードネームがどこかに混じってしまわないように気を付ければいいだけですよね?
みなさんがどうされてるのか気になったのでお聞きしました。
932(1): 2018/08/22(水)23:03 ID:4/HlUcDP(2/2) AAS
必要なら変えるよ
slnやvcxprojはただのxmlだから名前変えるだけならそんなに難しくない
933: 2018/08/23(木)00:06 ID:0/a4zf/K(1) AAS
英国ポエムシリーズでしょう
bjam=ブージャムは言うまでも無く、パンジャンドラムすらも無論英国のポエムから採られた
他にも兵器界隈ではスナークとかが存在するのは周知の通り
日本だと仏教用語から採ればいいんじゃあないですかね
934: 931 2018/08/23(木)00:10 ID:U43QDDsh(1) AAS
>>932
なるほど〜、プロジェクト関連ファイルを編集することで名前を変えることはできるんですね。
なら気兼ねなく最初はコードネームにしときます。
ありがとうございました^^
935: ◆QZaw55cn4c 2018/08/23(木)22:00 ID:NMfUyUL+(1/2) AAS
std::ref() について教えてください
void f(:ostringstream &os) { ... }
int main() {
ostringstream s;
std::thread(f, std::ref(s));
...
とありましたが、なぜ呼び出し側で「おまじない」のstd::ref() が必要なのか理解できません
どんなときに呼び出し側で std::ref() が必要なのでしょうか?
テンプレート関係かと思いましたが
外部リンク:ideone.com
省2
936: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/08/23(木)22:17 ID:Z2Fii0dD(1/2) AAS
std::refの規格表とソースを見たか?
余計なコピーを抑制してるんだ。
937: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/08/23(木)22:18 ID:Z2Fii0dD(2/2) AAS
s/表/票/
938(1): 2018/08/23(木)22:33 ID:/6RK1Hlx(1) AAS
非参照なテンプレートな引数に一時変数を作らずに参照を渡せる
939(2): ◆QZaw55cn4c 2018/08/23(木)22:52 ID:NMfUyUL+(2/2) AAS
>>938
コメントありがとうございます
コピーコンストラクタが禁止されている std::cout をテンプレート引数にわたす場合で理解できました(かもしれません)
外部リンク:ideone.com
一つ質問ですが、私なら、このプログラム例の y()
template<class T> void y((*f)(), T &os) { ... }
のように、テンプレートを書く時点で参照に書いてしまうのですが、
あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか?
940: 2018/08/24(金)02:37 ID:kcQyW4E+(1) AAS
大阪はいたって平和
しょぼいにもホドがある
941: ◆QZaw55cn4c 2018/08/24(金)03:55 ID:A5L5xSI8(1/2) AAS
>>939
>あえて非参照なテンプレート引数を書く「便利さ」みたいなもの
std::thread のコンストラクタを眺めていて気が付いたこと…これ、可変長テンプレートですね
942: ◆QZaw55cn4c 2018/08/24(金)04:17 ID:A5L5xSI8(2/2) AAS
x86 の cmpxchg を使いたくて、gcc 拡張の __sync_val_compare_and_swap() を試していました
外部リンク:shinh.hatenablog.com
外部リンク:ideone.com
c++11 に std::atomic::compare_exchange_weak() を見つけましたが、これは適当に(任意に) new で確保したヒープにも適用できるものでしょうか?
943: 2018/08/24(金)07:59 ID:ZkSPfVdV(1) AAS
何で出来ないと思うの?
944(2): 2018/08/25(土)08:53 ID:/11s7nnG(1/2) AAS
template <typename T, typename... ARGS>
class nested_error : public std::nested_exception, public ARGS...
{
public:
nested_error(T const& t, ARGS const&... args) : T(t), nested_error(args...) //C3511
{
}
nested_error(T const& t) : T(t)
{
}
省2
945: 2018/08/25(土)13:51 ID:rL3qzGy6(1/9) AAS
そりゃまー、実体化した内部ではTは決定済みだろうから無理だろう。
Anyつかうとか・・・。
946: 2018/08/25(土)14:24 ID:rL3qzGy6(2/9) AAS
あ、すまん。おかしなこと言った。
えーっと、変数が一個じゃ足りないな。
イニシャライザーリスト使うか、下位関数にキックするか。
947: 2018/08/25(土)15:05 ID:XmdDRLnv(1) AAS
そもそもコンストラクタの委譲は再帰禁止だったと思うが
別のクラステンプレートのメンバ関数とか関数テンプレートで再帰するしかないと思う
948(3): 2018/08/25(土)15:57 ID:rL3qzGy6(3/9) AAS
外部リンク:wandbox.org
興味があったのでそれっぽいコード書いてみた。
これキャッチするの無理だろ。
949(1): 2018/08/25(土)16:53 ID:rL3qzGy6(4/9) AAS
そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ?
昔、例外投げるときはメモリが足りなかったりとかクリティカルな状況だからやめろって言われたような気がする。
どうやったっけ?
950: 2018/08/25(土)18:24 ID:/11s7nnG(2/2) AAS
>>948
なんか面白そうなのうpしてくれてありがとう
すまん、今かなり酔っ払ってる
素面に戻ってからじっくり読むから
ちょっと待ってて
951(1): 2018/08/25(土)18:56 ID:5ar3I1wr(1/2) AAS
>>948
つ catch(A<B, C> E)
952(2): 2018/08/25(土)19:23 ID:r5O9PJUC(1) AAS
>>949
> そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ?
メモリー不足による例外発生時だとその例外処理時のメモリー確保自体が失敗するから例外処理(例えばログ出力)ができなくなるってこと
953(1): 2018/08/25(土)20:44 ID:rL3qzGy6(5/9) AAS
>>951
そらまー、引数がそれの時はできるけど、必ず把握はしてないでしょ。
>>952
あぁ、なるほど。ありがとう。
954: 2018/08/25(土)20:51 ID:cO/mJ1mq(1/3) AAS
>>952
メイヤーズ本に簡単な回避テクが書いてある
希ガス
955(1): 2018/08/25(土)20:52 ID:cO/mJ1mq(2/3) AAS
真にご法度なのはデストラクタの中での例外発生なんじゃ…
956(1): 2018/08/25(土)21:06 ID:tfF8aOe1(1) AAS
>>953
951だけど、何したいのか分からない。
catch (decltype(X) E)
ならええの?
957(1): 2018/08/25(土)22:12 ID:rL3qzGy6(6/9) AAS
外部リンク:wandbox.org
うはー、気が向いたから、コンストラクタに推論させようと思ったら手間食った。あー疲れた。
しかし、理解が深まって良かったかな。うえー。
>>956
投げた本人ならできるけど別のところから飛んできたやつはつかめなくない?
958: 2018/08/25(土)22:26 ID:rL3qzGy6(7/9) AAS
しかし、色々試したが結局うまくいかず、解説ページの死角にぽろっとあるのが最高にリアル。
959(1): 2018/08/25(土)23:19 ID:5ar3I1wr(2/2) AAS
>>957
例えばA<B, C>とA<D>は全く別の型なのだから、どっちの型が飛んでくるかわからないのに両方catchするのは無理でしょ。
Base型で試そうとした痕跡があるけど、catchした先でA<B, C>またはA<D>の関数を呼び出そうとしているからそれもできない。
「別のところ」から飛んでくる例外の型はコンパイル時には確定しているのだから、メタプログラミングが通常やるように、「別のところ」のテンプレ引数でthrowする型を決定できるようにすればいいんじゃね?
960: 2018/08/25(土)23:23 ID:rL3qzGy6(8/9) AAS
>>959
うん。多分それで困ると思う。>>944が!
メタプロやらないから可能性は感じるけど限界がわからない。
まぁ、俺は興味で書いただけだから、>>944がどうするかはシラネ・・・。
961: 2018/08/25(土)23:24 ID:Efgla6YW(1/2) AAS
>>939
>あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか?
threadの場合デフォルトで参照だとdata raceを気づかないで起こす可能性が上がる。
設計としてスレッドの引数はコピーして渡すほうが安全性は高い。
一般論で言えば一時オブジェクトを受け取るならconst&になるけど、
これだとmoveできないので逆に性能が劣化する場合がある。
962(1): 2018/08/25(土)23:32 ID:Efgla6YW(2/2) AAS
最近の提案なんかではメモリ確保失敗は回復が難しく一般的な例外とは
区別して考えるのが合理的なんじゃないかって話が出てきてる。
んで新しく静的な例外を導入しようっていう話が上がってる。
963: 2018/08/25(土)23:39 ID:rL3qzGy6(9/9) AAS
>>962
コンパイルタイムで例外わかるんだったら、普通にコンパイルエラーにしよ?
964: 2018/08/25(土)23:47 ID:cO/mJ1mq(3/3) AAS
メメント・メモリ
965: 2018/08/26(日)02:56 ID:zhFpXu2e(1) AAS
ヒープが無くなったら、HeapCreateで作れば良いのに。
by マリー・アンチョワネット
966: 2018/08/26(日)14:06 ID:Q8b2w7YQ(1) AAS
メモリがどれくらい必要なのか簡単に静的解析できたらいいなあと思うけど
再帰関数のメモリ消費量とか計算難しそう
967: 2018/08/26(日)14:10 ID:BwlGzYMc(1/2) AAS
mcc68kなんかは-Sでアセンブラ出力させると
コメントにスタック使用量を入れてくれてたな
968: 2018/08/26(日)19:26 ID:OiuVvKbz(1/4) AAS
割り込みになるけどちょっと質問させてください
struct hoge {
int a, b, c;
};
auto a = hoge{1, 2, 3};
auto b = int[]{1, 2, 3, 4};
省3
969: 2018/08/26(日)19:31 ID:Ws2ZfrVi(1) AAS
int[]は int * のシンタックスシュガー
970(1): 2018/08/26(日)19:34 ID:OiuVvKbz(2/4) AAS
int[4]でもだめだったんですよね・・・・
というか今思いついて(int[4]){1, 2, 3, 4}でやったらいけました
お騒がしてすみませそ
971: 2018/08/26(日)20:05 ID:qnZA5cjL(1/3) AAS
auto b ={1, 2, 3, 4};
972: 2018/08/26(日)20:12 ID:2rP1aXG6(1) AAS
>>970
それはC99の複合リテラルになるけど、C++で使ってよかったっけ?
973: 2018/08/26(日)20:19 ID:qnZA5cjL(2/3) AAS
warning: pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression [-Waddress-of-array-temporary]
974: 2018/08/26(日)20:21 ID:hANAm2gW(1/4) AAS
外部リンク:ideone.com
#include <stdio.h>
int main() {
int* b1 = {1, 2, 3, 4};
int b2[4] = {5, 6, 7, 8};
int b3[] = {9, 10, 11, 12};
fprintf(stdout, "b1:%u\n", sizeof(b1));
fprintf(stdout, "b2:%u\n", sizeof(b2));
fprintf(stdout, "b3:%u\n", sizeof(b3));
return 0;
省13
975: 2018/08/26(日)20:22 ID:hANAm2gW(2/4) AAS
c
b1:8
b2:16
b3:16
c++
b2:16
b3:16
976(1): 2018/08/26(日)20:27 ID:hANAm2gW(3/4) AAS
うん
やっぱり
このスレにもアホしかいない
977(1): さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/08/26(日)20:28 ID:Vxoswi+g(1) AAS
>>976
自分が天才だと思っているなら、こんなところで遊んでないで、なんか凄いソフトを作ってくれよ。
978: 2018/08/26(日)20:31 ID:BwlGzYMc(2/2) AAS
レス番が飛んでるなあ
979: 2018/08/26(日)20:31 ID:hANAm2gW(4/4) AAS
オレは自分を天才とか思ってない
オレは天才じゃないが普通の人間だ
この板にいる低学歴知恵遅れが
まともじゃないのがヤバイといってるワケ
教育の程度や知能に大きな問題があるといってるわけ
しかもその自覚がない
まずまともな人間になるところから
980: 2018/08/26(日)20:44 ID:qnZA5cjL(3/3) AAS
誤解したまま帰った?
auto a=(int[4]){1,2,3,4};
for(int i=0;i<4;i++)
{
printf("%d \n",a[i]);
省6
981(1): 2018/08/26(日)21:13 ID:OiuVvKbz(3/4) AAS
あー、すみませんautoって書いたのがまずかったですね
試してみたんですが、実際にはコンストラクタに渡すので大丈夫でした
autoだと配列の一時オブジェクトへのポインタになるからまずいですね
982(1): 2018/08/26(日)21:54 ID:7VGl0ROF(1) AAS
>>981
autoでなくても不味いよ
983: 2018/08/26(日)22:13 ID:zpiwFHmU(1) AAS
>>977
ほんこれ
984: 2018/08/26(日)22:53 ID:OiuVvKbz(4/4) AAS
>>982
なにがどうまずいですかね?
985: 2018/08/27(月)08:18 ID:YiUsgylF(1) AAS
まったりとしてコクが無く、魚介類の生臭さを濃縮したような
スープと同じぐらい不味い
986: 2018/08/27(月)13:42 ID:QRiCvp9j(1/2) AAS
きも
987(1): 944 2018/08/27(月)13:55 ID:vY3QDx2y(1/4) AAS
>>948
お待たせ
俺っちの質問はnested_exceptionを使うケースなので、
948のコードでいうとBaseを多相的クラスにしといて
catch(Base&)で捕獲し、dynamic_castでBやCへの
アクセスを試みるというようなことだ
ところで
template<class... Ts> overloaded(Ts...)->overloaded<Ts...>;
これが読めん、何やってるのか教えてくれんか
988: 2018/08/27(月)14:09 ID:vY3QDx2y(2/4) AAS
>>955
std::uncaught_exceptionというのがあるね
989(1): 2018/08/27(月)14:23 ID:QRiCvp9j(2/2) AAS
>>987
クラステンプレートの引数の推論補助(deduction guide
990: 2018/08/27(月)14:26 ID:vY3QDx2y(3/4) AAS
>>989
deduction guideね、thx
991: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/08/27(月)15:42 ID:JbKLTkj/(1) AAS
次スレ頼む
992: 2018/08/27(月)16:02 ID:r/wp9j7z(1) AAS
わたくしがC++で書き上げた超高性能次スレ立てマシーンなら次スレなんて一発ですよ
993: 2018/08/27(月)16:03 ID:vY3QDx2y(4/4) AAS
立てたよ
2chスレ:tech
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.297s*