[過去ログ] C++相談室 part164 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
7
(3): デフォルトの名無しさん (テテンテンテン MM7f-hs0w) [sage] 2023/05/13(土) 08:05:00.58 ID:qcT1eyp6M(1) AAS
職業プログラマに聞きたいんだけど
自分でソフト屋なんて言ってるけど、ほぼ全てを外注に投げて自分ではろくに書けないなんての普通のことなの?

今年から社会人になったんだけど、先輩たちのレベルが低すぎて失笑してる日々です。

c言語、クラスという単語をドヤ顔で宣ってる先輩達。
classを解釈できるcコンパイラがあるのかな
39
(3): デフォルトの名無しさん (ワッチョイ 0310-QNcS) [sage] 2023/05/16(火) 15:18:28.27 ID:cdgpde7Q0(1/2) AAS
教えてもらえないでしょうか
c++で
クラスを作って関数を書いています。
大きくなり、可読性が悪いので、
同じクラス内のcppを別ファイルに分けたいのですが、
可能なのでしょうか

継承を使って、10個ぐらい数珠つなぎにして、一番最後の継承クラスに関数呼び出し元の関数を書いて、
途中の継承クラスに分けたい関数を書いたら、
と考えたりしています。
182
(8): デフォルトの名無しさん (ワッチョイ b16b-q0yD) [sage] 2023/06/14(水) 08:43:22.06 ID:/jeWb7sY0(2/2) AAS
あとメモリに関連した質問で、例えばめちゃデカい std::vector を要素数 1 に resize しても capacity はめちゃデカいままですよね?
STL コンテナ以外にも、大きいメモリが割り当てられてるオブジェクトを使用後に破棄したいというケースがよくあります。
最も簡単なやり方は関数とか局所的なスコープとして切り出すことかと思いますが、他に、オブジェクトに割り当てられているメモリを手動で解放する方法があったら教えてください。
185
(4): デフォルトの名無しさん (アウアウウー Sadd-g1CP) [sage] 2023/06/14(水) 10:15:22.04 ID:iWYHYN4ra(1/3) AAS
>>182
new で造って delete (または delete []) で解放
190
(3): デフォルトの名無しさん (ワッチョイ 219b-q0yD) [sage] 2023/06/14(水) 14:03:16.39 ID:0kIiqVrM0(1/2) AAS
>>183
ありがとうございます
> getrusage
を試してみようと思います

>>185-187
STL コンテナを使うとしても自作クラスを使うとしても、オブジェクトを unique_ptr で持つことにして要らなくなったら reset() すれば確保していた分のメモリを捨てられるということでしょうか
依存関係が絡み合っていて簡単に小さいスコープに分割できないときは試してみようと思います
269
(4): デフォルトの名無しさん (ワッチョイ 127f-L1I+) [sage] 2023/06/20(火) 22:39:00.27 ID:ui/rWsWf0(1) AAS
265が言うようにis_invocable使うとこんな感じ?

template<typename Callback>
void func(Callback cb)
{
if constexpr (std::is_invocable_v<Callback, int>) {
cb(1);
} else if constexpr (std::is_invocable_v<Callback, int, int>) {
cb(1,2);
}
}
299
(4): デフォルトの名無しさん (ワッチョイ c997-trtU) [sage] 2023/06/23(金) 06:00:18.48 ID:AFPisFIg0(1) AAS
なんかのオブジェクトをポインタじゃなく実体として持ってるとして、それを delete するやり方ってないの?
たとえば std::vector A に対して
delete &A;
みたいな
316
(3): デフォルトの名無しさん (テテンテンテン MM96-UmNC) [sage] 2023/06/23(金) 14:42:57.84 ID:XaN8/xk5M(1) AAS
>>314
visual studioでできませんか?
visual studioに依存しないような形で
340
(3): デフォルトの名無しさん (ワッチョイ 856e-gmRT) [sage] 2023/06/28(水) 05:36:22.40 ID:p/gJzJ+n0(1/3) AAS
>>334
知らなきゃ聞くだろ
502
(3): デフォルトの名無しさん (ワッチョイ ae7a-CYkg) [sage] 2023/07/17(月) 23:18:54.88 ID:vGotTgNV0(1) AAS
リアルタイムOSのタスクのように無限ループが前提のとき

TASK Task1() {
while(1) {
Obj1 obj = Device::GetObj();
:
:
}
のようにobjを使う場合に、GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。

そうなると自作でないクラスのメソッドは使う前にnewの有無をすべて調べなければならなくなるように思います。
実際はそんな不条理はないはずで、このような問題はどう対処するのがいいですか。
514
(3): デフォルトの名無しさん (ワッチョイ b632-bpoS) [sage] 2023/07/21(金) 16:52:12.91 ID:PleiVI860(1) AAS
ちょいとコイツを見て欲しい。MSVC 14.36.32532でC++17かつセキュリティチェック無効(/GS-)

https://i.imgur.com/XGfeBgH.png


最小コードで再現するために、コマンドライン文字列を変な形式として扱ってるのは置いといて
変数rSizeが、引数argcのスタック領域(ebp+8)に割り当てられるんだけど、こんな最適化ある?
確かにargcは用済みだが、レジスタやローカルスタックではなくcdeclのconst引数にストアする?
617
(3): デフォルトの名無しさん (ワッチョイ a6a4-2Bsr) [sage] 2023/08/02(水) 01:27:09.22 ID:UwRg95UI0(1/3) AAS
プログラミングの面接を受けた。言語は何でもいいというので今使ってるC++で予め申請。
ロジックを問う問題なので言語で差はつかない、という話... だったが実際は文字列処理
の問題が多く、これはスクリプト系とかの方が有利じゃないか

C++にはなんで文字列のsplit系はないんだろ。どうしてます? <- あ、これが雑多な質問w
669
(3): デフォルトの名無しさん (ワッチョイ 2702-Dztr) [] 2023/08/16(水) 22:34:48.53 ID:YHO3HAlN0(1) AAS
https://i.imgur.com/2SPcox3.jpg

707
(4): デフォルトの名無しさん (ワッチョイ caad-VnR5) [sage] 2023/08/29(火) 16:30:54.10 ID:2MvLEdvj0(1) AAS
ヘッダにインターフェースだけ書いてcppにインプリメントクラスを定義して隠蔽するのって
ライブラリとかフレームワークだと意味あるけどアプリケーションレベルの実装でやる意味って無いですよね?
946
(3): デフォルトの名無しさん (スッップ Sd9a-SL8W) [sage] 2023/10/24(火) 08:43:43.05 ID:NeqpGeoJd(1) AAS
教訓
std::vectorは使い物にならない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.077s