C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part148
https://mevius.5ch.net/test/read.cgi/tech/1580471646/
このスレもよろしくね。
【初心者歓迎】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/ (日本語)
C++相談室 part149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/02/18(火) 06:19:41.54ID:xvjipUWj2020/02/18(火) 07:30:53.57ID:6S1dA7EZ
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>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----
2020/02/18(火) 07:50:56.98ID:KHr4ndHy
std::functionを使うなと言われたのは残念だが
newのときたまの遅さの可能性に警鐘を鳴らしたから勝利宣言しちゃおうかなっ
かなっ
newのときたまの遅さの可能性に警鐘を鳴らしたから勝利宣言しちゃおうかなっ
かなっ
2020/02/18(火) 08:39:06.73ID:vOZ3pUbp
>>1 乙
2020/02/18(火) 10:35:35.23ID:xvjipUWj
function・・・それだけか?
なんか組み込みにC++は向かないとまで
大きく出る理由として弱すぎね?
なんか組み込みにC++は向かないとまで
大きく出る理由として弱すぎね?
2020/02/18(火) 10:36:23.95ID:xvjipUWj
あ、IDは気にしないでね
スレ主としての発言じゃないよ
スレ主としての発言じゃないよ
2020/02/18(火) 10:43:38.96ID:TnY2bwh5
2020/02/18(火) 10:48:05.96ID:xvjipUWj
君は誰?
組み込みにC++は向かないなんて思ってないなら
俺はそれ以上言うことないけど
組み込みにC++は向かないなんて思ってないなら
俺はそれ以上言うことないけど
2020/02/18(火) 10:55:26.54ID:TnY2bwh5
>標準ライブラリでもallocatorが指定できないものもあるんだよ
の人ではないよ
というか何がそんなに気に入らないのかね
組み込みに向かないと言ってた人はArduinoがどうこう言ってたろ
実際RAMが少ない環境ではかなり慎重に使わざるを得ないんだろ、知らんけど
の人ではないよ
というか何がそんなに気に入らないのかね
組み込みに向かないと言ってた人はArduinoがどうこう言ってたろ
実際RAMが少ない環境ではかなり慎重に使わざるを得ないんだろ、知らんけど
10はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 11:00:57.59ID:Nm2LYTxd std::function は (呼び出しの型が一致さえすれば) どんな関数オブジェクト (または関数ポインタ)
でも格納できるというのは強いんだが、
実際にはコンパイル時に型が確定できる場合の方が多いと思うので
std::is_invocable_r で制約を付けた方が少し性能は良いと思う。
でもテンプレートって型引数ごとに実体化されちゃうから、
素朴に考えると引数をラムダ式で与えてたら呼び出しごとに実体化されることになっちゃうよな……。
(最適化で上手く統合されることもあるかもしれないけど。)
どちらを選んでもいいことばかりではないので、結局は場合によるとしか。
でも格納できるというのは強いんだが、
実際にはコンパイル時に型が確定できる場合の方が多いと思うので
std::is_invocable_r で制約を付けた方が少し性能は良いと思う。
でもテンプレートって型引数ごとに実体化されちゃうから、
素朴に考えると引数をラムダ式で与えてたら呼び出しごとに実体化されることになっちゃうよな……。
(最適化で上手く統合されることもあるかもしれないけど。)
どちらを選んでもいいことばかりではないので、結局は場合によるとしか。
2020/02/18(火) 11:05:28.20ID:xvjipUWj
2020/02/18(火) 11:09:15.65ID:TnY2bwh5
だから過剰反応しすぎだろ
functionの話してた人はゲームだろうが
反対するなら根拠を示せばいいし
少なくとも別の人の話は混同するな
functionの話してた人はゲームだろうが
反対するなら根拠を示せばいいし
少なくとも別の人の話は混同するな
2020/02/18(火) 11:11:12.73ID:TnY2bwh5
>>10
ラムダなら実体化っつっても毎回関数オブジェクト作るのと変わらんやろ
ラムダなら実体化っつっても毎回関数オブジェクト作るのと変わらんやろ
2020/02/18(火) 11:13:33.03ID:xvjipUWj
IDなんかアテにならない
基本的に匿名掲示板なんだから
人違いはそう言えばいい
もっとも、それを信じるかどうかは別だが
基本的に匿名掲示板なんだから
人違いはそう言えばいい
もっとも、それを信じるかどうかは別だが
2020/02/18(火) 11:19:56.99ID:TnY2bwh5
まさか前スレID:tDJaHP5Kじゃないだろうな?
2020/02/18(火) 11:42:54.44ID:xvjipUWj
2020/02/18(火) 11:48:32.16ID:TnY2bwh5
>「後で」かw
>もう1000間近だし期限切らないでおけば時効だろってか?
こんなん書いてよく開き直れるな
側から見てて気分悪かったぞ
ちなみに俺は前スレnfQlnp9bな
>もう1000間近だし期限切らないでおけば時効だろってか?
こんなん書いてよく開き直れるな
側から見てて気分悪かったぞ
ちなみに俺は前スレnfQlnp9bな
18はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 11:55:50.57ID:Nm2LYTxd >>17
それは妥当だろ。
あの場面ではライブラリにアロケータを指定できない場合があると主張しながら例を示さない
のは議論の仕方がわかってないクズだし、そういう奴に遠慮してたら話が進まねーよ。
2ch って元々そういうところじゃん。
それは妥当だろ。
あの場面ではライブラリにアロケータを指定できない場合があると主張しながら例を示さない
のは議論の仕方がわかってないクズだし、そういう奴に遠慮してたら話が進まねーよ。
2ch って元々そういうところじゃん。
2020/02/18(火) 11:59:04.13ID:xvjipUWj
ああ、あいつか
元々newの話だったのに
mallocの話だってクレーム垂れてきたやつね
元々newの話だったのに
mallocの話だってクレーム垂れてきたやつね
2020/02/18(火) 11:59:40.16ID:TnY2bwh5
は?頭湧いてんのか?
最終的に例出されたなら反論か謝罪かどっちかだろ
そこで逃げるという選択が取れる方がよっぽどクズだと思うがな
最終的に例出されたなら反論か謝罪かどっちかだろ
そこで逃げるという選択が取れる方がよっぽどクズだと思うがな
2020/02/18(火) 12:01:31.50ID:TnY2bwh5
毎回荒れる原因作ってんのお前らだろ
さんざん煽って言い返せなくなったら別人に成り済まして単発煽り入れたり
マジ邪魔だわ
さんざん煽って言い返せなくなったら別人に成り済まして単発煽り入れたり
マジ邪魔だわ
2020/02/18(火) 12:03:20.38ID:xvjipUWj
それから俺は元々特定のレスや人物に異を唱えたわけではなく
流れ全体に対しておかしいと思ったことを言ったのが968だったぞ
流れ全体に対しておかしいと思ったことを言ったのが968だったぞ
23はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 12:07:30.24ID:Nm2LYTxd2020/02/18(火) 12:08:17.71ID:xvjipUWj
だいたい喧嘩売ってきたのは978で
それまで平和的に話していた俺が
ひとこと言い返したのだけ取り上げて
気分悪いとかどういうバイアス持ってるんだよ
それまで平和的に話していた俺が
ひとこと言い返したのだけ取り上げて
気分悪いとかどういうバイアス持ってるんだよ
2020/02/18(火) 12:11:28.72ID:TnY2bwh5
>前スレで野党に喩えたのはそういうとこね。
それはどうでもいい、問題にもしてない
>カルトクイズに答えられない相手を見て悦に入るようなやつがクズでなくてなんなんだ。
悦に入ってたかどうかは本人に聞け
というか調べ方は出してくれてただろうが
お前も都合の悪いことからはとことん逃げるから、悪いが相手したくない
それはどうでもいい、問題にもしてない
>カルトクイズに答えられない相手を見て悦に入るようなやつがクズでなくてなんなんだ。
悦に入ってたかどうかは本人に聞け
というか調べ方は出してくれてただろうが
お前も都合の悪いことからはとことん逃げるから、悪いが相手したくない
2020/02/18(火) 12:14:37.63ID:TnY2bwh5
2020/02/18(火) 12:17:59.50ID:xvjipUWj
自己弁護にしか見えねえ
どうやら勘ぐりは当たってたようだな
どうやら勘ぐりは当たってたようだな
2020/02/18(火) 12:21:22.79ID:TnY2bwh5
アホか
俺が前スレ>>978本人だったらもっといじり倒してるわ
俺が前スレ>>978本人だったらもっといじり倒してるわ
2020/02/18(火) 12:27:49.37ID:xvjipUWj
言えば言うほどドツボだぜw
30はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 13:53:54.86ID:Nm2LYTxd MinGW のライブラリを見てたら std::function にも SSO が入ってる。
データメンバの総計が 16 バイト以下の関数オブジェクト (キャプチャした変数が少ないラムダ) なら new は呼ばれない。
※ string ではないのにこの最適化を SSO と呼んでいいものなのかどうかわからん
※ 16 バイトというのは環境によるだろうし、 SSO がないこともあるだろう
※ とはいえ、主要な実装ではだいたい有ることを期待できるのではなかろうか
間接参照にはなるから std::function はわずかにコスト高には違いないかもしれないけど、
ちょっとしたことに使う分には急激に実行コストが上がるというほどではない。
リソースの限られた組み込み環境だといずれにしても基本的なライブラリも
自前で用意せざるを得なかったりもするだろうし、
標準ライブラリをフルセットで使えるほどの環境ならみみっちくリソース消費量を抑える必要もないだろうから、
使いどころが適切であれば全体としてはあまり問題にならなさそうという感想。 (あくまでも個人の感想です!)
データメンバの総計が 16 バイト以下の関数オブジェクト (キャプチャした変数が少ないラムダ) なら new は呼ばれない。
※ string ではないのにこの最適化を SSO と呼んでいいものなのかどうかわからん
※ 16 バイトというのは環境によるだろうし、 SSO がないこともあるだろう
※ とはいえ、主要な実装ではだいたい有ることを期待できるのではなかろうか
間接参照にはなるから std::function はわずかにコスト高には違いないかもしれないけど、
ちょっとしたことに使う分には急激に実行コストが上がるというほどではない。
リソースの限られた組み込み環境だといずれにしても基本的なライブラリも
自前で用意せざるを得なかったりもするだろうし、
標準ライブラリをフルセットで使えるほどの環境ならみみっちくリソース消費量を抑える必要もないだろうから、
使いどころが適切であれば全体としてはあまり問題にならなさそうという感想。 (あくまでも個人の感想です!)
31デフォルトの名無しさん
2020/02/18(火) 17:23:06.88ID:iYoDhrK1 ちゃうねん。
32はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 17:35:08.64ID:Nm2LYTxd そうか (´・ω・`)
33デフォルトの名無しさん
2020/02/18(火) 17:37:59.36ID:iYoDhrK1 僕はArduinoこそC++パワーが必要と言ってるんですよ。
34デフォルトの名無しさん
2020/02/18(火) 17:41:06.24ID:iYoDhrK1 Arduinoは様々な亜種があるので、テンプレートでゴニョゴニョすると、何かいいことが起きるのではないか?
そんなことを議論してほしいわけですよ。
メモリーは2KBしかないけれども。
そんなことを議論してほしいわけですよ。
メモリーは2KBしかないけれども。
35デフォルトの名無しさん
2020/02/18(火) 17:45:54.66ID:iYoDhrK1 ちなみにエルチカとこんな感じ。
最大32256バイトのフラッシュメモリのうち、スケッチが932バイト(2%)を使っています。
最大2048バイトのRAMのうち、グローバル変数が9バイト(0%)を使っていて、ローカル変数で2039バイト使うことができます。
最大32256バイトのフラッシュメモリのうち、スケッチが932バイト(2%)を使っています。
最大2048バイトのRAMのうち、グローバル変数が9バイト(0%)を使っていて、ローカル変数で2039バイト使うことができます。
36はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 17:46:01.07ID:Nm2LYTxd >>33-34
僕って誰や?
ランタイムのパワーが必要ないものはリソースの少ない環境用に積極的に活用するべきだとは思う。
Arduino についてはよう知らんけど、ドキュメントを見た感じだと type_traits のような
(実行時の) マシンパワーが要らないようなものまで除く必要はないやろという気持ちになる。
僕って誰や?
ランタイムのパワーが必要ないものはリソースの少ない環境用に積極的に活用するべきだとは思う。
Arduino についてはよう知らんけど、ドキュメントを見た感じだと type_traits のような
(実行時の) マシンパワーが要らないようなものまで除く必要はないやろという気持ちになる。
37デフォルトの名無しさん
2020/02/18(火) 17:48:36.87ID:iYoDhrK1 C++標準ライブラリはないけどテンプレートは使えます!
38デフォルトの名無しさん
2020/02/18(火) 17:51:48.28ID:iYoDhrK1 魔術師が活躍する舞台として最高だと思いますが。
なぜ参入してこないのか。
なぜ参入してこないのか。
39デフォルトの名無しさん
2020/02/18(火) 17:58:28.64ID:iYoDhrK1 Running 5 test cases...
---------- std_algorithm__adjacent_find_1 ----------
std::vector<std::uint32_t>
size(): 104,857,600
std::adjacent_find: 66ms
---------- std_algorithm__is_sorted_1 ----------
std::vector<std::uint32_t>
size(): 104,857,600
std::is_sorted: 66ms
---------- std_algorithm__sort_1 ----------
std::vector<std::uint32_t>
size(): 1,048,576
std::sort: 119ms
---------- std_algorithm__unique_1 ----------
std::vector<std::uint32_t>
size(): 5,242,880
std::unique: 4ms
---------- std__vector__copy_1 ----------
std::vector<std::uint32_t>
size(): 104,857,600
copy assignment: 220ms
new std::uint32_t[]
size: 104,857,600
std::memmove: 55ms
*** No errors detected
---------- std_algorithm__adjacent_find_1 ----------
std::vector<std::uint32_t>
size(): 104,857,600
std::adjacent_find: 66ms
---------- std_algorithm__is_sorted_1 ----------
std::vector<std::uint32_t>
size(): 104,857,600
std::is_sorted: 66ms
---------- std_algorithm__sort_1 ----------
std::vector<std::uint32_t>
size(): 1,048,576
std::sort: 119ms
---------- std_algorithm__unique_1 ----------
std::vector<std::uint32_t>
size(): 5,242,880
std::unique: 4ms
---------- std__vector__copy_1 ----------
std::vector<std::uint32_t>
size(): 104,857,600
copy assignment: 220ms
new std::uint32_t[]
size: 104,857,600
std::memmove: 55ms
*** No errors detected
40デフォルトの名無しさん
2020/02/18(火) 17:59:19.58ID:iYoDhrK1 一億個コピーで220msだった。
41はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 18:04:45.17ID:Nm2LYTxd42デフォルトの名無しさん
2020/02/18(火) 18:05:23.55ID:iYoDhrK1 ありがとん。
2020/02/18(火) 18:08:56.36ID:sX1qjJQt
>>30
SSO = Small-string optimization
SSO = Small-string optimization
44デフォルトの名無しさん
2020/02/18(火) 18:13:40.86ID:iYoDhrK1 Arduinoも一応newは使える。
使わないけど。
使わないけど。
46デフォルトの名無しさん
2020/02/18(火) 18:27:32.40ID:iYoDhrK1 2KBしかないからローカル変数。
47デフォルトの名無しさん
2020/02/18(火) 18:31:23.28ID:iYoDhrK1 基本的にグローバル変数を駆使するしかないけど、結構強烈に最適化かかるので、意外と2KBで何でもできる。
48はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 18:45:24.62ID:Nm2LYTxd プログラムが極端に小さいなら高度な抽象化をする甲斐がない。
抽象レイヤを挟むことで綺麗になるよりも複雑さが増すだけになりがち。
本当に使いまわす部品は綺麗に整理するに越したことは無いけど、
メモリ 2KB かそこらの環境ならベタ書きで十分でしょ。 (YAGNI 原則)
C++ が組み込みに向いていないとは言わないけど、
そのレベルで極端にリソースが制約されている状況では必要でもないと思う。
抽象レイヤを挟むことで綺麗になるよりも複雑さが増すだけになりがち。
本当に使いまわす部品は綺麗に整理するに越したことは無いけど、
メモリ 2KB かそこらの環境ならベタ書きで十分でしょ。 (YAGNI 原則)
C++ が組み込みに向いていないとは言わないけど、
そのレベルで極端にリソースが制約されている状況では必要でもないと思う。
49デフォルトの名無しさん
2020/02/18(火) 18:46:17.48ID:iYoDhrK1 パソコンでは、恐れることなくnew使って良いと思うけど、static_vectorというのも自作した。
50はちみつ餃子 ◆8X2XSCHEME
2020/02/18(火) 18:48:40.47ID:Nm2LYTxd >>48
もちろん単にやるのが楽しい! というのも動機としてはありうるので趣味でやる分にはどんどんやったらいいと思うけど。
もちろん単にやるのが楽しい! というのも動機としてはありうるので趣味でやる分にはどんどんやったらいいと思うけど。
51デフォルトの名無しさん
2020/02/18(火) 18:48:49.63ID:iYoDhrK12020/02/18(火) 18:58:47.76ID:CLqeafa/
いやいや、固定小数点とか組み込みだからこそのtemplateがふさわしい場面は結構あるよ
53デフォルトの名無しさん
2020/02/18(火) 19:00:28.24ID:iYoDhrK1 小数点難しいよね。
難しすぎるわ。
難しすぎるわ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 青銅聖闘士のパンチは音速←わかる 白銀聖闘士はその数倍←まぁわかる 黄金聖闘士は光速←は?
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- さわやかって
- 生活保護を受けている私だけど、おはようございます。
- 【朗報】ローソン「Мサイズのカップを購入してLサイズのコーヒーを入れてくださいね」 [455031798]
