TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
ExcelVBAで勤務表を作ろう
【統計分析】機械学習・データマイニング20
【マック】Macintoshプログラミング質問箱
関数型言語一般
Win32API質問箱 Build124
MFC相談室 mfc23d.dll
Win32API質問箱 Build126
【アンチ】関数型言語は使えない【玩具】 2
今までに見たソースコードで一番感動したのは deux
ふらっと C#,C♯,C#(初心者用) Part141

C++相談室 part149


1 :2020/02/18 〜 最終レス :2020/03/24
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part148
https://mevius.2ch.sc/test/read.cgi/tech/1580471646/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.2ch.sc/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

2 :
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後R。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

---- テンプレ ここまで ----

3 :
std::functionを使うなと言われたのは残念だが
newのときたまの遅さの可能性に警鐘を鳴らしたから勝利宣言しちゃおうかなっ
かなっ

4 :
>>1

5 :
function・・・それだけか?
なんか組み込みにC++は向かないとまで
大きく出る理由として弱すぎね?

6 :
あ、IDは気にしないでね
スレ主としての発言じゃないよ

7 :

それ言ってたのは別の人だし過剰反応しすぎだろ

というかあのキッズを叩くと必ず単発煽りが出てくるのは恐らく同一人物だろうな

>>3
標準ヒープ使われてもいいなら使えばいいじゃん

8 :
君は誰?
組み込みにC++は向かないなんて思ってないなら
俺はそれ以上言うことないけど

9 :
>標準ライブラリでもallocatorが指定できないものもあるんだよ
の人ではないよ

というか何がそんなに気に入らないのかね
組み込みに向かないと言ってた人はArduinoがどうこう言ってたろ
実際RAMが少ない環境ではかなり慎重に使わざるを得ないんだろ、知らんけど

10 :
std::function は (呼び出しの型が一致さえすれば) どんな関数オブジェクト (または関数ポインタ)
でも格納できるというのは強いんだが、
実際にはコンパイル時に型が確定できる場合の方が多いと思うので
std::is_invocable_r で制約を付けた方が少し性能は良いと思う。

でもテンプレートって型引数ごとに実体化されちゃうから、
素朴に考えると引数をラムダ式で与えてたら呼び出しごとに実体化されることになっちゃうよな……。
(最適化で上手く統合されることもあるかもしれないけど。)
どちらを選んでもいいことばかりではないので、結局は場合によるとしか。

11 :
>>9
何がってそのままだよ
組み込みにC++は向かない、という意見に反対だ

12 :
だから過剰反応しすぎだろ
functionの話してた人はゲームだろうが
反対するなら根拠を示せばいいし
少なくとも別の人の話は混同するな

13 :
>>10
ラムダなら実体化っつっても毎回関数オブジェクト作るのと変わらんやろ

14 :
IDなんかアテにならない
基本的に匿名掲示板なんだから
人違いはそう言えばいい
もっとも、それを信じるかどうかは別だが

15 :
まさか前スレID:tDJaHP5Kじゃないだろうな?

16 :
>>15
いや俺tDJaHP5Kだよ
過剰反応するなっていうおまえさんこそ
なんでそんなにとんがってるんだ?
色々勘ぐってしまうぞ

17 :
>「後で」かw
>もう1000間近だし期限切らないでおけば時効だろってか?
こんなん書いてよく開き直れるな
側から見てて気分悪かったぞ
ちなみに俺は前スレnfQlnp9bな

18 :
>>17
それは妥当だろ。
あの場面ではライブラリにアロケータを指定できない場合があると主張しながら例を示さない
のは議論の仕方がわかってないクズだし、そういう奴に遠慮してたら話が進まねーよ。
2ch って元々そういうところじゃん。

19 :
ああ、あいつか
元々newの話だったのに
mallocの話だってクレーム垂れてきたやつね

20 :
は?頭湧いてんのか?
最終的に例出されたなら反論か謝罪かどっちかだろ
そこで逃げるという選択が取れる方がよっぽどクズだと思うがな

21 :
毎回荒れる原因作ってんのお前らだろ
さんざん煽って言い返せなくなったら別人に成り済まして単発煽り入れたり
マジ邪魔だわ

22 :
それから俺は元々特定のレスや人物に異を唱えたわけではなく
流れ全体に対しておかしいと思ったことを言ったのが968だったぞ

23 :
>>20
前スレで野党に喩えたのはそういうとこね。
事実関係は議論の前提だから、共有しないで先延ばしする理由はない。
カルトクイズに答えられない相手を見て悦に入るようなやつがクズでなくてなんなんだ。

24 :
だいたい喧嘩売ってきたのは978で
それまで平和的に話していた俺が
ひとこと言い返したのだけ取り上げて
気分悪いとかどういうバイアス持ってるんだよ

25 :
>前スレで野党に喩えたのはそういうとこね。
それはどうでもいい、問題にもしてない
>カルトクイズに答えられない相手を見て悦に入るようなやつがクズでなくてなんなんだ。
悦に入ってたかどうかは本人に聞け
というか調べ方は出してくれてただろうが
お前も都合の悪いことからはとことん逃げるから、悪いが相手したくない

26 :
>>24
>>978もそれまでのお前の態度と同程度には平和的だと思うが
どういうバイアス持ってるんだよ
悪いがもうキチガイキッズの相手はしたくない、絡んで悪かったな

27 :
自己弁護にしか見えねえ
どうやら勘ぐりは当たってたようだな

28 :
アホか
俺が前スレ>>978本人だったらもっといじり倒してるわ

29 :
言えば言うほどドツボだぜw

30 :
MinGW のライブラリを見てたら std::function にも SSO が入ってる。
データメンバの総計が 16 バイト以下の関数オブジェクト (キャプチャした変数が少ないラムダ) なら new は呼ばれない。

※ string ではないのにこの最適化を SSO と呼んでいいものなのかどうかわからん
※ 16 バイトというのは環境によるだろうし、 SSO がないこともあるだろう
※ とはいえ、主要な実装ではだいたい有ることを期待できるのではなかろうか

間接参照にはなるから std::function はわずかにコスト高には違いないかもしれないけど、
ちょっとしたことに使う分には急激に実行コストが上がるというほどではない。

リソースの限られた組み込み環境だといずれにしても基本的なライブラリも
自前で用意せざるを得なかったりもするだろうし、
標準ライブラリをフルセットで使えるほどの環境ならみみっちくリソース消費量を抑える必要もないだろうから、
使いどころが適切であれば全体としてはあまり問題にならなさそうという感想。 (あくまでも個人の感想です!)

31 :
ちゃうねん。

32 :
そうか (´・ω・`)

33 :
僕はArduinoこそC++パワーが必要と言ってるんですよ。

34 :
Arduinoは様々な亜種があるので、テンプレートでゴニョゴニョすると、何かいいことが起きるのではないか?
そんなことを議論してほしいわけですよ。
メモリーは2KBしかないけれども。

35 :
ちなみにエルチカとこんな感じ。
最大32256バイトのフラッシュメモリのうち、スケッチが932バイト(2%)を使っています。
最大2048バイトのRAMのうち、グローバル変数が9バイト(0%)を使っていて、ローカル変数で2039バイト使うことができます。

36 :
>>33-34
僕って誰や?
ランタイムのパワーが必要ないものはリソースの少ない環境用に積極的に活用するべきだとは思う。
Arduino についてはよう知らんけど、ドキュメントを見た感じだと type_traits のような
(実行時の) マシンパワーが要らないようなものまで除く必要はないやろという気持ちになる。

37 :
C++標準ライブラリはないけどテンプレートは使えます!

38 :
魔術師が活躍する舞台として最高だと思いますが。
なぜ参入してこないのか。

39 :
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

40 :
一億個コピーで220msだった。

41 :
>>38
たぶん探せばそれっぽいライブラリもあるんちゃう?
https://www.google.com/search?q=Arduino++C%2B%2B+template+library

42 :
ありがとん。

43 :
>>30
SSO = Small-string optimization

44 :
Arduinoも一応newは使える。
使わないけど。

45 :
>>44
new を使わずに、かわりにどうすんの?

46 :
2KBしかないからローカル変数。

47 :
基本的にグローバル変数を駆使するしかないけど、結構強烈に最適化かかるので、意外と2KBで何でもできる。

48 :
プログラムが極端に小さいなら高度な抽象化をする甲斐がない。
抽象レイヤを挟むことで綺麗になるよりも複雑さが増すだけになりがち。
本当に使いまわす部品は綺麗に整理するに越したことは無いけど、
メモリ 2KB かそこらの環境ならベタ書きで十分でしょ。 (YAGNI 原則)
C++ が組み込みに向いていないとは言わないけど、
そのレベルで極端にリソースが制約されている状況では必要でもないと思う。

49 :
パソコンでは、恐れることなくnew使って良いと思うけど、static_vectorというのも自作した。

50 :
>>48
もちろん単にやるのが楽しい! というのも動機としてはありうるので趣味でやる分にはどんどんやったらいいと思うけど。

51 :
>>48
まあ確かに。
でも使いまわし出来ると便利だし、C++なら...やってくれる!

52 :
いやいや、固定小数点とか組み込みだからこそのtemplateがふさわしい場面は結構あるよ

53 :
小数点難しいよね。
難しすぎるわ。

54 :
>>49
どういう意味で static なの?
大きさが固定ってこと?

55 :
ストレージ内蔵だけど内蔵キャパまでの可変長対応とかかね
知らんけど

56 :
>>54
std::arrayにsize()をプラスした。

57 :
std::arrayは最初からsize()持ってるんだけどどういうこと?

58 :
static_vectorってまんまboostにある
最大の長さが確定してるvectorで
メモリ確保は初期化時だけってやつ
それこそ組み込みやゲームでは有用
上の人のと同じかどうかは知らんが

59 :
組み込みでboostとかwwwwwwww

60 :
>>11
向くか向かないかなんて主観なんだからそこを力説してもしゃない
向くと思うなら自身の経験をもとに定性的に説明してみなはれ

あと組み込みってもピンキリだから
マイコンでモーターをPID制御するのと、
組み込みLinuxでメディアサーバー作るのとでは全く異なる世界
そこは区別しないと意味ある議論はできないね

後者は両論あるだろうけど前者はどうだろう?
そもそもモダンなc++で開発できる環境あるのかな?

61 :
>>59
省メモリデザインなクラスがあったりする

62 :
>>59
駄目ですか?
使えるなら使っていいンじゃなすか?

63 :
YAGNI // "You ain't gonna need it" : 機能は実際に必要となるまでは追加しないのがよいとする。
Ajail 開発
↑こういう開発哲学の様なものは他にどんなものがありますか?
真逆の哲学でも構いません。

64 :
>>63
【KISS の原則 (英: KISS principle)】
「Keep it simple stupid.」(シンプルで愚鈍にする)、もしくは「Keep it simple, stupid.」
(シンプルにしておけ!この間抜け)、もしくは「Keep it short and simple.」(簡潔に単純にしておけ)
という内容の、1960年代の米国海軍において言われた、経験的な原理・原則の略語。
その意味するところは、設計の単純性(簡潔性)は成功への鍵だということと、不必要な複雑性は避けるべきだ、ということである。

【なし崩しの機能追加主義】
KISSの原則に反して、仕様が徐々に複雑化していくことは、ソフトウェア開発の世界でよくみられる。
これは、「なし崩しの機能追加主義」として知られる。
ソフトウェアが複雑になるにつれて、使い方を習得する時間が増えたり、操作に手間取ったり、どれが重要な機能なのか分からなくなったりする。
さらには、ハードウェアへの要求スペックが高くなったり製品価格が高くなったりもする。
しかし、大多数のユーザーが実際に使用する機能は、そのごく一部であったりする。
ユーザへの負担や開発コストを考えると、単純なソフトウェアの方がユーザフレンドリかつ生産性が高い可能性がある。

65 :
今風の入門でおススメの方法はありますか?

66 :
KISSの原則、俺は正しいと思う
オーバースペックなものを作っても、その「オーバー」な部分が
あとで必要になったとき不十分なんてことが起きやすいからな
案件の「今」を最大限に最適化するのは義務と言ってよい努力だし

なし崩しの法則は、変更要求に対する不適切な対応が積み重なって起きることだ
既存のソースコードや回路図の微修正で済ませようとするあまり
それまでの反省を踏まえてきれいにリメイクすれば解消する問題が
ずっと影を落とし続ける現象はそこいら中あふれかえっている

67 :
車輪の再発明なんて例えをよく見かけるが
じゃあ今の車輪はまだ木で出来ていたり
パンクしやすいチューブタイヤだったりするのか
進歩の原動力たる、たゆまぬ努力に対する
アイディアキラーは見逃しちゃダメだ

68 :
>>63
契約プログラミングとかもそうかな?
C++20 にサポートが入る予定だったが、次以降に延期された。
まあ言語としてのサポートがあろうとなかろうと関数が機能するための前提条件
を意識したり明記したりするのは良いことだと思う。

文芸的プログラミングという考え方もある。
説明文とコードを分離せずに書くようなもの。
提案者 (クヌース) が考えていたのは文章説明を中心にする考え方で
コードの方が従属するようなものだけれど、
コメントとしてドキュメントを書くようなものなら doxygen や Javadoc はよく使われているね。
コードを書いているときはちゃんと把握できているからドキュメントを後回しにしがちだし、
コードがドキュメントであるようなものが理想とか言う人もいるんだけど、
数日前に書いたものさえ割と忘れるのが人間なので文書で残すのは大事だと思う。

テスト駆動開発も割とメジャーかもしれない。
仕様をテストコードとして書いて、それを満たすように実装を進める手法。
テストできるように作らなければならないという点で実装に制約が付くのが嫌われがち
ではあるようだけど、仕事でやる開発なら客にアピールしやすい気がするなぁ。

69 :
doxygenで作られたドキュメントあんま役に立たないよ
特にテンプレートリッチなコードだと余計なものや個々の実体化までドキュメントに入る
まぁそれを避ける方法が無いわけではないしdoxygen用にコメントをきっちり書くのは良いことなんだけど

70 :
>>67
車輪の再発明っていうのは、車輪を知らないで「発明」することだよ。
既に普及しているものを知らず、学ばずに思いつきでやって既出の失敗を繰り返す愚かさを言ったもので、
学んだ上であらためて自分で作ることや改良することを否定してはいない。

71 :
>>69
個別のツールについては私は良く知らないんだ。
ここではドキュメントとコードを同時進行で作るという考え方の話。

72 :
>>70
ところが、「車輪の際発明」と言って批判する人こそが、全く試しもせずに妄想していることも多い。
この言葉をインド人が言っているのを見て、だから後進国のままなんだな、と思った。

73 :
車輪を題材にした慣用句であり、世界中で使われている。
「広く受け入れられ確立されている技術や解決法を知らずに(または意図的に無視して)、
同様のものを再び一から作ること」
を意味する。

74 :
MS officeのフリーの互換製品を作ることは違う

75 :
>>70
同じことだ
学生や新米が何か思いついて実験してみてるところへ
身も蓋もないことを言ってやる気なくさせる老害は進歩の邪魔だ

76 :
会社で仕事中にやるのはどうかと

77 :
パーキンソンの凡俗法則
どうでもいい話題ほど紛糾する
車輪の再発明がどうとか
gotoがどうとか

78 :
>>76
俺、サラリーマンやってた頃は
手が空いたとき色々実験してたよ
向上心のないやつを蛇蝎のごとく嫌う上司だったし

79 :
>>75
それは思いつきとは言ってもまだ学びの段階の中の話でしょ。
学ぶためにやってるのなら別にいいよ。
学習段階によって当然知っているべきことを学べてないなら軌道修正はするべきだが。
程度問題とか状況というものもある。
上にあげたような方法論がある程度の確立はしているとは言っても、
業務に取り込むにあたっては色々と試行錯誤はあるもんだしな。
>>76
仕事に必要な学習なら業務時間中にやるべきだし、
そのための時間が与えられないなら会社が学ぶなという方針なんだろう。

80 :
学ぶ?
毎回プロジェクト初めに同じものを同じだけ時間かけて作り直すのが学習?
前のを使えよ

81 :
プロジェクトが始まったらニコニコ顔で同じ作業を同じように繰り返して
夜になったら必要もないのに残業してふーってニコニコして仕事
ある程度満足したら帰る
そしてプロジェクト終了間際には死んだような顔をしてこんなの間に合うわけないとか言い出す
車輪の再発明にかけた時間をそこに回せよと

82 :
プロジェクト始まったころにSEが間に合って仕様書も来てないのに意味もなく残業してるやつら
何をしてるのかと思うと勉強しようと思ってとか言って全然関係ないことをしてる
家でやれよバカ
R給料泥棒

83 :
× SEが間に合って
○ SEが間に合っていなくて

84 :
業務でやるならそのあたりのバランスを決めるのは管理者の裁量次第だろ。

85 :
>>80
自動化できるものは自動化すべきだね
コピー一発で済むものとジェネレータがいるのとある

俺、ジェネレータ作るの楽しくて好きだ

86 :
ちゃうねん。

87 :
学習に時間を使ったのに同じように失敗する馬鹿。
糞シンタックスを覚えることに時間かけるんじゃなくて
普通にメトリック取ったりテストコード書けって話なんだが、理解できないのだろう。

88 :
> 俺、ジェネレータ作るの楽しくて好きだ
この場合のジェネレータって一体何?

89 :
同じものを1度作っても2度目作れない
同じくらい時間はかかっても2度目作ると3度目は作れるようになっている
それは無駄ではないと思っている

90 :
進歩するやつと、しないやつの差だね

91 :
マ板でやれや

92 :
海外の掲示板で「車輪の再発明」することを馬鹿にしていたもう一人の人は、哲学科出身で、宗教関連の発言ばかりしてる人だった。
理系ですらない。
自分では作らずに口だけ達者な人だった事が追跡できた。

93 :
全然関係ないことを持ち出して
自分と意見の違う人を馬鹿にできたつもりになってるやつは
論理的な思考が極度に苦手な、理系文系以前に無学なやつだ

94 :
>>92は車輪の際発明を馬鹿にする人が一人しかいないという命題に対する反例
としては全く正しい

95 :
>>82
プロジェクトを効率よく回した方が良い
あと残業を作業者自身の裁量に任せるのはシステムがNG
裁量労働は結果責任を果たせば会社が回るクラスの仕事をしているハイクラスな奴用
SEが必要なときに前の仕事が終わっていないかもしれないからロックしておくというケースで
前の仕事が終わったSEが次の仕事のスタートまでの間、
定時内に会社で独学するのは別段怒るほどのことではない

96 :
そういう話はマ板でやれ

97 :
ここ老害のおっさんばっかりだからな
ところ構わず自分の言いたいことを言いまくる
はいおっさん続きどうぞ

98 :
そういう煽りもマ板でやれ

99 :
他人が自分と違う意見を持つ事実を受け入れられず拒否反応するだけな幼児性は無学のさらに以前の問題だ

100 :
「車輪の再発明」という言葉は、加工貿易しか生きる道は無い日本を必ず衰退させる。


100〜のスレッドの続きを読む
次世代言語13 COBOL Java PHP VBA Ruby
くだすれDelphi(超初心者用)その55
オブジェクト指向ってクソかよPart5
AI AI って夢見すぎてない?
ふらっと C#,C♯,C#(初心者用) Part127
七行プログラミング part6
簡単なプログラム言語って何?
Visual Studio 2019 Part2
文字コード総合スレ Part12
文字コード総合スレ Part11
--------------------
「愛国心」って絶対悪じゃね?
【元保守】皇室問題を語る【疑問や不満】
[ID無] 将棋関係の不満や愚痴を吐き出すスレ
【悲報】「中京の達人」福永祐一騎手、極上馬質で新馬戦1勝のみ。デムーロは4勝。
【MHW】チャージアックススレ チャージ93回目
最近食べた駅弁を挙げるスレ
Fate/Grand Order 無課金ワッチョイ有りスレ516
【MAZDA】マツダ2代目(KF)CX-5 Vol.41【SKYACTIV】
ヤエーしたのに返さなかった奴を追って理由聞くけど
【男なら】鼻の穴から【勇ましく】7 [無断転載禁止]©3ch.net
潜水艦乗りだが質問ある?
きっずの噂(24寄り)14
やって良かったスレin喪女板 10【ワッチョイ】
【P5】新島真&信者アンチスレ22【ペルソナ5】
政府、20億円かけ全国にラグビー練習場を整備へ [533895477]
Rが深そうな武将
【スクスト】 スクールガールストライカーズ2 part1382
Pillars of Eternity part16
【エアプ開発】ACT FANTASY XIV:FF14アンチスレ【7年間ドラクエアンチの造語症ガイジ】
ハセガワのプラモデル総合 40
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼