次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part132
http://mevius.5ch.net/test/read.cgi/tech/1507561894/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
■長いソースを貼るときはここへ。■
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
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part133
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1fcf-H1rY)
2017/11/24(金) 16:52:50.43ID:WoNXR2ax02デフォルトの名無しさん (ワッチョイ 5fcf-H1rY)
2017/11/24(金) 16:53:45.38ID:WoNXR2ax0 STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----
3デフォルトの名無しさん (ワッチョイ 8746-TjkM)
2017/11/24(金) 17:23:34.21ID:tVS6N6Kc0 >関数内で作ったベクターやマップは関数を抜けたらメモリ解放されると考えてよかです?
だって今回の話はmove関係ないし
質問とは関係ない余計なことを言って知識をひけらかしたかっただけの人でしょ
今回の話であれば
「自動変数であればスコープを抜けるときにデストラクタが走って解放される」
というだけの話
それ以上の話はまた別の話
>うん、信じていい
>XXから抜けるときにムーブコンストラクタでtmpへ移動され
>createmapから抜けるときに解放される
>このときoperator deleteが呼び出されるが
>operator deleteがどのようなタイミングで解放しているかには依存すべきでない
>我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
↑依存すべきでは無い、と言っておいて、関心を持つべき、と言ってみたり
実装の詳細に関心を持つべきでない、と言っておいて、vectorの実装詳細を語ったり
言ってることやってることが支離滅裂で、意味不明だろう
ついでにバージョンによってRVOどうのこうのも、質問には関係が無い余談だし
そもそもバージョンの話するんなら昔のC++はmoveセマンティクス無いし
しかし、どうであれ、どのみち質問には関係が無い
だって今回の話はmove関係ないし
質問とは関係ない余計なことを言って知識をひけらかしたかっただけの人でしょ
今回の話であれば
「自動変数であればスコープを抜けるときにデストラクタが走って解放される」
というだけの話
それ以上の話はまた別の話
>うん、信じていい
>XXから抜けるときにムーブコンストラクタでtmpへ移動され
>createmapから抜けるときに解放される
>このときoperator deleteが呼び出されるが
>operator deleteがどのようなタイミングで解放しているかには依存すべきでない
>我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
↑依存すべきでは無い、と言っておいて、関心を持つべき、と言ってみたり
実装の詳細に関心を持つべきでない、と言っておいて、vectorの実装詳細を語ったり
言ってることやってることが支離滅裂で、意味不明だろう
ついでにバージョンによってRVOどうのこうのも、質問には関係が無い余談だし
そもそもバージョンの話するんなら昔のC++はmoveセマンティクス無いし
しかし、どうであれ、どのみち質問には関係が無い
4デフォルトの名無しさん (ワッチョイ 5fb3-9Jqp)
2017/11/24(金) 19:29:11.47ID:FCfoZStM0 何故建てたし
5デフォルトの名無しさん (アウアウカー Sadb-ZI9b)
2017/11/24(金) 20:40:51.17ID:X0HwtQDQa 保守
6デフォルトの名無しさん (ワッチョイ 5f34-y0n2)
2017/11/24(金) 20:43:34.75ID:06etO6GG0 >>2
いつまでこの糞テンプレ張り続けるんだおい
いつまでこの糞テンプレ張り続けるんだおい
7デフォルトの名無しさん (ワッチョイ 0778-4Z1+)
2017/11/24(金) 22:22:42.08ID:l1+FhW7v0 v(^・^)vはどこ行った?
8デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
2017/11/24(金) 22:59:15.71ID:9/UAKu4i0 前スレ995
https://mevius.5ch.net/test/read.cgi/tech/1507561894/995
おまえは何を言っているんだ?
= delete;が03でNGになるのは当たり前だろ
https://mevius.5ch.net/test/read.cgi/tech/1507561894/995
おまえは何を言っているんだ?
= delete;が03でNGになるのは当たり前だろ
9デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
2017/11/24(金) 23:01:10.76ID:9/UAKu4i010デフォルトの名無しさん (ワッチョイ 8746-TjkM)
2017/11/24(金) 23:25:11.19ID:tVS6N6Kc0 前スレのおバカさんか
>このときoperator deleteが呼び出されるが
>operator deleteがどのようなタイミングで解放しているかには依存すべきでない
>我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
↑これの説明してみ?
好意的に解釈することもできるが、どのみち意味不明すぎる
>このときoperator deleteが呼び出されるが
>operator deleteがどのようなタイミングで解放しているかには依存すべきでない
>我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
↑これの説明してみ?
好意的に解釈することもできるが、どのみち意味不明すぎる
11はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/24(金) 23:43:36.87ID:lG8HVUMw012デフォルトの名無しさん (ワッチョイ 8746-TjkM)
2017/11/24(金) 23:59:00.33ID:tVS6N6Kc0 まぁ、>>10の意味不明な文章の解釈などどっちでも良いんだが
質問者はvectorな自動変数の寿命に関して、RAIIが正しく行われるか
不安だから聞いているだけなのに、moveがどうとかドヤッた挙句
RVOが働いたらmoveされないんじゃね?ってのはお粗末すぎる
return vec;で、RVOが働くか、ムーブコンストラクタになるか、コピーコンストラクタになるか、は
コンパイラの銘柄とバージョンと最適化のオプションによるだろうし
もしかしたら、コンパイラの気分で変わるかもしれないし
なんだったら、関数がインライン展開されたらまた前提が変わってくるだろうよ
なんで、こんなことは考えるだけ無意味であるし
というか、考えなくてよいように作ってあるし
むしろ、考えてはダメというか、依存させてはいけないという意味で
余計なこと(悪いこと)は考えないほうが良いし
結局、質問者には
vectorな自動変数はスコープを抜けると寿命が尽きてデストラクタが呼ばれて解放される
というC++の根底のDNAである、RAIIのルールだけ言えばよいわけで
質問者はvectorな自動変数の寿命に関して、RAIIが正しく行われるか
不安だから聞いているだけなのに、moveがどうとかドヤッた挙句
RVOが働いたらmoveされないんじゃね?ってのはお粗末すぎる
return vec;で、RVOが働くか、ムーブコンストラクタになるか、コピーコンストラクタになるか、は
コンパイラの銘柄とバージョンと最適化のオプションによるだろうし
もしかしたら、コンパイラの気分で変わるかもしれないし
なんだったら、関数がインライン展開されたらまた前提が変わってくるだろうよ
なんで、こんなことは考えるだけ無意味であるし
というか、考えなくてよいように作ってあるし
むしろ、考えてはダメというか、依存させてはいけないという意味で
余計なこと(悪いこと)は考えないほうが良いし
結局、質問者には
vectorな自動変数はスコープを抜けると寿命が尽きてデストラクタが呼ばれて解放される
というC++の根底のDNAである、RAIIのルールだけ言えばよいわけで
13デフォルトの名無しさん (ワッチョイ 8746-TjkM)
2017/11/25(土) 00:07:29.16ID:gBFdbUKG0 vectorな自動変数 という表現はちょっとアレだったかもしれん
まぁ、vector型として宣言された自動変数 のこと・・
まぁ、vector型として宣言された自動変数 のこと・・
14デフォルトの名無しさん (オッペケ Srfb-gBtc)
2017/11/25(土) 00:10:16.37ID:5IwBrrUdr 「コンパイラの銘柄とバージョンと最適化のオプションによる」
少なくとも991の置いたC++17の前提ではムーブコンストラクターやコピーコンストラクターは有り得ないのだが、
ひょっとして前提をすり替えられたのだろうか
少なくとも991の置いたC++17の前提ではムーブコンストラクターやコピーコンストラクターは有り得ないのだが、
ひょっとして前提をすり替えられたのだろうか
15デフォルトの名無しさん (ワッチョイ 8746-TjkM)
2017/11/25(土) 00:27:25.13ID:gBFdbUKG0 それは>>991が言ってるだけで
質問者はC++17とは言ってない
質問者に対して、もしC++17の場合は必ずRVOになるので〜〜という説明をしたとして
これもあまり意味が無いというか、関係が無い
質問者はvectorがRAIIを徹底していのるか心配になったから聞いているだけ
その意味ではRVOだろうがムーブだろうがコピーだろうが、関係が無い
質問者はC++17とは言ってない
質問者に対して、もしC++17の場合は必ずRVOになるので〜〜という説明をしたとして
これもあまり意味が無いというか、関係が無い
質問者はvectorがRAIIを徹底していのるか心配になったから聞いているだけ
その意味ではRVOだろうがムーブだろうがコピーだろうが、関係が無い
16デフォルトの名無しさん (ワッチョイ 5fe7-8Ex9)
2017/11/25(土) 00:33:53.19ID:Sg1k8TV00 991がC++17のことを言っているのはちょっと脱線しただけであって、
話の前提でもないし質問の意図に沿ったものでもないよな
話の前提でもないし質問の意図に沿ったものでもないよな
17デフォルトの名無しさん (ワッチョイ 5fb3-CDhT)
2017/11/25(土) 09:33:20.80ID:+Jz8ZPqE0 なけなしの知識でドヤってるだけやろ w
18デフォルトの名無しさん (ブーイモ MM7f-N4rA)
2017/11/25(土) 21:47:56.71ID:fPJ/ssThM const参照を返す関数があるのだけど、autoで効率よく戻り値を受け取るには
const auto&とか書かなきゃいけないの?
それともdecltype(auto)とかするの?
const auto&とか書かなきゃいけないの?
それともdecltype(auto)とかするの?
19デフォルトの名無しさん (ワッチョイ 5fbd-hcjg)
2017/11/25(土) 23:24:46.27ID:afKc1pIZ0 ↑嘔吐するから漏れには関係ない
それよか想定上はconstメソッドなのだが実際のところ実装がどうされるかわからない抽象仮想関数にconstをつけて良いものかどうか
いつも悩む
それよか想定上はconstメソッドなのだが実際のところ実装がどうされるかわからない抽象仮想関数にconstをつけて良いものかどうか
いつも悩む
20デフォルトの名無しさん (ワッチョイ 7fa5-5mWG)
2017/11/25(土) 23:33:46.79ID:mxSpQEHX0 autoで受けて余計なコピーを発生させちゃう困ったちゃん
21デフォルトの名無しさん (ワッチョイ c74b-gliV)
2017/11/26(日) 03:45:55.11ID:I/ckFlEt0 >>19
良い。
良い。
22デフォルトの名無しさん (ワッチョイ dfeb-+V5r)
2017/11/26(日) 03:58:55.87ID:DFCtUaBX023デフォルトの名無しさん (ワッチョイ 5fcc-tupB)
2017/11/26(日) 04:29:20.65ID:g3197Gxk0 最近勉強始めたばかりで100までの範囲の数字を入力したらそれが1〜10,11〜20,・・・91〜100のどの範囲にあるか判定したいけどif文10個用意する方法より綺麗にするにはどうしたらいい?
24片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd7f-PBlX)
2017/11/26(日) 04:32:18.07ID:KjdhQPtsd -1
25片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd7f-PBlX)
2017/11/26(日) 04:33:56.38ID:KjdhQPtsd switch ((x - 1) / 10)
26デフォルトの名無しさん (ワッチョイ 5fcf-H1rY)
2017/11/26(日) 04:42:41.92ID:Dn1yAmWU027デフォルトの名無しさん (ワッチョイ 07b3-5mWG)
2017/11/26(日) 09:12:00.52ID:8WHK08hV0 >>23
(x-1)/10
(x-1)/10
28デフォルトの名無しさん (ブーイモ MMcf-V9cG)
2017/11/26(日) 10:40:50.63ID:q1KSvIhfM29デフォルトの名無しさん (ブーイモ MM7f-N4rA)
2017/11/26(日) 11:43:40.48ID:OJziPoG6M >>19>>20
結局どうしたらいいの...
結局どうしたらいいの...
30デフォルトの名無しさん (オッペケ Srfb-gBtc)
2017/11/26(日) 11:56:21.91ID:OeykFUMSr >>29
auto &&unko = f();
auto &&unko = f();
31デフォルトの名無しさん (アウアウカー Sadb-Fzm/)
2017/11/26(日) 17:24:53.04ID:+CosUOwya Win32とかだとフラグ管理でビット演算利用してるけど、今どきのc++17だとどのようにするのがベスト?
32デフォルトの名無しさん (ワッチョイ 07eb-5mWG)
2017/11/26(日) 17:30:11.12ID:DaGrByo80 C++入門書でよく勉強したはずなのにautoとかconstexprとか知らんもんが一杯…
33デフォルトの名無しさん (ワッチョイ 077f-lrN+)
2017/11/26(日) 17:31:42.72ID:CoQMqJ/C0 何年に発売した入門書なんだ
34デフォルトの名無しさん (ワッチョイ 272d-eGxq)
2017/11/26(日) 17:33:33.90ID:mkIW06Zo0 変わらず std::bitset 使い続けてる ベストかは自信ないけど不便もないので
35デフォルトの名無しさん (ワッチョイ 07eb-5mWG)
2017/11/26(日) 17:38:44.74ID:DaGrByo8036デフォルトの名無しさん (ワッチョイ 07eb-5mWG)
2017/11/26(日) 17:39:04.93ID:DaGrByo80 >>33だった
37デフォルトの名無しさん (ワッチョイ 0778-4Z1+)
2017/11/26(日) 17:42:35.83ID:LgT/GDJu0 CはそれほどでもないけどC++は11以降どんどん変わるようになったね
38デフォルトの名無しさん (ワッチョイ 5fcf-H1rY)
2017/11/26(日) 17:46:59.07ID:n7ZC4ZKm0 Effective Modern C++を俺は使ってる
でもC++17が出たらまた新刊出るね
これC++11/14対応版だしすぐに古くなる
でもC++17が出たらまた新刊出るね
これC++11/14対応版だしすぐに古くなる
39デフォルトの名無しさん (ワッチョイ 07eb-5mWG)
2017/11/26(日) 17:52:39.37ID:DaGrByo80 Effective Modern C++17出たら買ってみるわ
40デフォルトの名無しさん (ワッチョイ bf3f-ThNz)
2017/11/26(日) 17:56:44.90ID:kRx46ugP0 もうC++を本で勉強するのは無理なのではないだろうか
41デフォルトの名無しさん (ワッチョイ bf4b-g2WY)
2017/11/26(日) 18:04:02.71ID:rgo+yBBa0 C++を始めようと思うんですがおすすめの参考書知りたいです。Cの知識はありませんがPythonでプログラミングは経験したのでプログラミング初学者ではないです。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- あぼーん
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- 【老舗文具メーカー】「生成AIで制作していた」――サクラクレパス、“AI疑惑”ポスターの調査結果を報告 ★2 [ぐれ★]
- 一人殺したい奴がいる
- __トランプ、G7に代わる「Core 5」構想、米 中 露 印 日をまとめる巨大枠組み、世界秩序の再編につながる可能性 [827565401]
- 残クレタワマン、始まるwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- エアライダーもう誰もやってなくね?
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
