1 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:20:06.25 ID:o3PNwIlC0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい。 !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part134 mevius.5ch.net/test/read.cgi/tech/1516406742/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
439 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:13:26.88 ID:clK1o5V+0.net] つまりfooSDK/interface.hとbarSDK/interface.hは同一として判定するんだな たいへんだー
440 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:22
] [ここ壊れてます]
441 名前::50.78 ID:WRqkde3l0.net mailto: 結論を急ぐあまり考察が浅くなりすぎだな [] [ここ壊れてます]
442 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:23:37.16 ID:ibkTuaSK0.net] #pragma onceの前に改行があったらエラーですかwww
443 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:27:57.75 ID:amQJLuCm0.net] >>420 それ単に管理がなってないだけだろ どのバージョンのヘッダーを読み込むかを管理できてないとか怖すぎる
444 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:34:33.18 ID:WRqkde3l0.net] >>432 どう管理しろと? 混用しているライブラリに偶然同じファイル名があって どちらもインクルードガードされているということを 「管理」で回避できるのか?
445 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:42:57.08 ID:zm4OWgENM.net] >>432 えー、cvs keywordはどうするのー? サブモジュールを格納してたリポジトリ毎に値が異なるよ? 自動的に改行コードを修正してくれるリポジトリの場合はー?
446 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:45:12.10 ID:ibkTuaSK0.net] まずは世の中のプリプロセッサのpragma onceの仕様がどうなっているかを調べるべきかと
447 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:54:13.99 ID:EXYGb8MJ0.net] 具体的な話になったら一気にレベル下がったなw
448 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:21:03.59 ID:amQJLuCm0.net] >>433 話の流れを理解せずに無駄に絡んでくるなよ... インクルードガードならとりあえずビルドできるって言う話だぞ >>434 同一のSDKなんだから同一のものを指すようにすればいいだけだろ
449 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:24:05.76 ID:ibkTuaSK0.net] 目的は インクルードのループを防ぎたいのと 同じ定義を複数回行うことでエラーになるのを防ぎたい ってことだよな これをインテリジェントに行ってくれるのが理想 インテリジェントな物を仕様にするのは難しいし、 時代が進めばインテリジェント具合も変わる >>418 みたいなあまりにショボい仕様だと 後々不満が出ることになる
450 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:28:01.67 ID:WRqkde3l0.net] >>437 答えになってないぞ 今 #pragma once について話しているよな インクルードガードを #pragma once でやっていたらどうなんだ
451 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:28:57.76 ID:BHnoJcFn0.net] >>429 >>434 現行のヘッダファイルでうまく行っているのならそのままでええ(>>418 項番4はそのためにある そうではなくて、もしも(例えば)マイクロソフトのVisual C++の#pragma onceを使って書かれた過去の遺産の尊重が大事なら そのときは>>418 の方の#pragma onceを#pragma once2とかに代えれば良いが そりゃー(例えば)マイクロソフトのVisual C++の#pragma onceが先行して規格になった後の話なので今は無視 >>435 >417からの流れと考え合わせるに、 「僕ちゃんの考えた理想の#pragma onceじゃないと嫌なの!!!>418のクソ単純な仕様は正しくとも認められん!!!」ってことですかそうですか… なお>>431 の指摘は評価する >>436 抽象的な言い回しで無意味に高尚な議論に見せかけている連中の方が多数派 空っぽなのに…
452 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:29:34.95 ID:ibkTuaSK0.net] 当然互換性の問題もある 今まで動いていたものが正しく動かなくなるのであれば支持されない だから>>435 も非常に重要
453 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:33:35.22 ID:BHnoJcFn0.net] >>441 時間差だったかもしれんが>>440 の最初のパラグラフ参照 存在しない規格との互換性の問題を喚かないでいただきたい、というのはあるが 回避策も示しているのだからオール無問題
454 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:33:47.48 ID:ibkTuaSK0.net] >>429 の例で 2重インクルードを防ぎたい場合とそれぞれ別にインクルードしたい場合があるってのは書かなくてもわかるよな 中身が全く同じであれば防ぎたいし 全く別の定義であればそれそれぞれをインクルードしたい
455 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:35:03.59 ID:ibkTuaSK0.net] >>442 #pragma onceの仕様はVisual C++しか実装してないと思ってる?
456 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:38:47.00 ID:BHnoJcFn0.net] >>443 >>444 >2重インクルードを防ぎたい場合とそれぞれ別にインクルードしたい場合があるってのは書かなくてもわかるよな ああ>>443 の脳内にはそういう要求もあるんですねわかります その場合は>>418 項番4でドゾー 藻前ら>>418 の単純さをバカにするが藻前らの論理展開のアレっぷりも相当なもんやぞ…
457 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:42:05.24 ID:ibkTuaSK0.net] いずれにしろ>>418 みたいなチープな仕様じゃ誰にも支持されない
458 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:45:00.58 ID:WRqkde3l0.net] ツッコミ殺到でボコボコなのに勝利宣言してやがるな つっこんだ人たち(ここのほぼ全員)にバレバレなのに滑稽な
459 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:10:27.31 ID:ueAKslGb0.net] >>418 ,421はミニマムの仕様を提示しただけで、つまり、 この仕様で問題ない場合は #pragma once で手抜きが出来て、 無理な場合は従来通りインクルードガード使えってことだろ。 俺はありだと思うぜ。仕様ってのはこういう割り切り方をしないと決まらない。 C++のラムダなんて後付で仕様を拡張して行っているし。(このやり方がいいとは思わないが) ただ、この仕様だと現行の #pragma once よりも割り切っているのがイマイチで、 「今」この仕様では却下されるだろう。 「#pragma once が全くない世界」なら、とりあえずここから出発するのもありだっただろう。 現行の #pragma once は常識的に考えて、 ・ファイル実体が同じ場合(ハードリンク/シンボリックリンク)は対応可能 ・コピーの場合(ローカルに xxx.h を tmp_xxx.h にしてデバッグ出力を改変したり)には対応不能 だろう。だから使用条件としては、 ・全ファイルがローカルファイルシステム上にあり、ヘッダファイルの改変は行わない であり、普通に個人レベルで開発する場合はこれで全く問題ないし、妥当だ。 会社で10-20人レベルで開発する場合、どのみちルールを子細に決めることになるし、 そういう場合は従来のインクルードガードでやれ、という割り切りも妥当だよ。
460 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:11:35.35 ID:ueAKslGb0.net] なお俺が推す仕様は、 ・#pragma once のファイル内では複数定義のエラーを無視する というものだ。従って、 ・現行の#pragma once とは違い、対象ファイルは必ず「ファイルとしては」「読み込まれる」 (これは現行のインクルードガードとも同じ) ・定義されている物のシグネチャが既に存在するものと全く同一だった場合、無視する。 ・シグネチャが異なっている場合、普通に読み込む(コンパイル対象とする) (勝手にデバッグ関数を追加されていた場合、その関数だけはコンパイルされる) ・#pragma once のファイルを全部パースし終わった際、「全部重複」「全部新規」ではなかった場合、警告を出す。 (正しく使えば「全部重複」「全部新規」のどちらかになる。 改変《追加》した場合は「一部新規」となり、警告にする。「一部欠落」は検知しない。) というものだ。 この場合、要するに「読み込んで同じだったら無視」なので、 #ifdef 内等、かなりアクロバティックに使われても、問題なく、使用者の直感通りに動作する。 改行の追加、コメント変更等は全く問題ない。 ただし常に全部のファイルを読み込み、初段階のパースは行うことになるので、 現行の #pragma once やインクルードガードよりは速度は劣る。 とはいえ、今更ここが問題になる時代ではないし、問題になるようならインクルードガードを使えと割り切る。 つまり、面倒なら #include を使わずに、全部 #pragma once にも出来る、というもので、 実際これで問題無いと思うんだがな。
461 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:15:31.75 ID:aIENMcPWd.net] もう書かなくて良いよ アホだってこはみんなわかったから
462 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:18:31.52 ID:aIENMcPWd.net] ヒント インクルードループ
463 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:22:35.75 ID:aIENMcPWd.net] インクルードのネストがn段 それぞれの段、m個のインクルードファイルからm個インクルードしてるとします 何パス必要でしょう
464 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:14:39.04 ID:wZlaoeXA0.net] >(ディレクトリパスは無視) 現行の#pragma onceでこんな実装になってる処理系あるかなぁ
465 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:22:28.92 ID:amQJLuCm0.net] >>439 日本語で桶
466 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:24:23.32 ID:amQJLuCm0.net] >>438 , >>446 > >>418 みたいなあまりにショボい仕様だと > 後々不満が出ることになる でも具体的には指摘できない ってか w
467 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:26:40.87 ID:aIENMcPWd.net] 具体的にたくさんあがってるのが見えないのかな
468 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:51:19.85 ID:NasUyYi90.net] プリプロセッサが諸悪の根源
469 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:51:48.61 ID:NasUyYi90.net] #define多いと読む気しない
470 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 13:09:32.49 ID:amQJLuCm0.net] >>456 レス番も引用もできないクズ乙 w
471 名前:デフォルトの名無しさん [2018/04/28(土) 14:18:44.28 ID:0IOpQOT30.net] static変数(クラスのインスタンス)がプログラム実行時にそのメンバ関数呼び出し時にその中で、 newをすると既存のヒープ領域を破壊することはありますか? どうもこのように解釈できる現象が起きているようなのですが、調べても分からずアドバイスを頂ければ幸いです。 環境はMacのHighSierra、コンパイラはbrewから持ってきたLLVMです。
472 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:33:32.77 ID:ueAKslGb0.net] >>460 99%以上の確率であなたのバグです。 1行目の意味はよく分かりませんが。
473 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:51:34.89 ID:ueAKslGb0.net] ああすまん、何となく1行目の意味は分かった。 ・クラスインスタンスをstatic変数に入れ、そのメソッドを呼んだ 事をそう表現したのかな? だったらはっきり言ってstatic云々関係ない。 GCなんて無いから「statc変数に入れたら忘れてGCされてしまう」みたいなことはそもそも無い。 ヒープを壊しているのはユーザーです。つーか、ランタイムもないし。 ガチでコンパイラのバグだと思っているのなら、 どのみち再現コード(その場合は20行程度か)を作るしかない。 その過程で君のバグだと気づけるだろうさ。 ただこのように「下から」デバッグをするのは時間がかかるから、俺は嫌いだけど、 君がそう思うのならやるしかない。 C/C++は広く長く使われて来ている言語だから、 現在もバリバリに使われているコンパイラなら、この辺の基本的な部分にバグは無いと思うよ。 static変数に確保するのはマイナーかもしれないが、滅多にやらないってほどではないし、 そもそも上記の通り、コンパイラにとって危険のある(バグに命中する可能性のある)使い方でもない。
474 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:59:13.74 ID:9z8isRDe0.net] >>460 破壊って何?
475 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:20:06.35 ID:aIENMcPWd.net] ふつうに、 クラスのインスタンスがstatic宣言と読んだけだ static MyClass a; スコープローカルかファイルローカルかはわからん
476 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:29:35.84 ID:ueAKslGb0.net] >>450 >>464 日本語でおk お前は半島に帰れ >>452 それでお前は何パスだと思うのさ? 予言してやる。お前は言えない。 なぜならお前は馬鹿であり、それがばれるのが怖いから。
477 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:46:24.07 ID:aIENMcPWd.net] おれは数学の専門家だぞ わからないわけがない
478 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:46:53.04 ID:aIENMcPWd.net] なぜ問題を出したのか考えてみ
479 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 18:39:11.84 ID:ueAKslGb0.net] ひとまず俺の一つ目の予言は的中だな。 次に行こう。 >>467 ID:aIENMcPWd お前の日本語の間違いをすべて訂正してみろ。 2つ目の予言をする。お前は言えない。 なぜならお前はゴキブリ韓国人であり、間違いを認識できていないから。
480 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 02:23:46.17 ID:UY96NiMha.net] C++でプラットフォームに依存しない音楽再生ライブラリってある?特にlinuxで使いたいんだけど。 mpg123とかいうのもみてみたんだけどプログラムに組み込むやり方が分からない
481 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 02:25:23.22 ID:kTR2ZRC/0.net] MIDAS
482 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 07:28:51.71 ID:riHNUW7H0.net] Gstreamer
483 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 10:01:20.67 ID:4Txko8z40.net] 質問ですが Q1. 浮動小数点型について表現しえる最小の値(負の値のうちの絶対値が最大のやつ)を取得する 環境非依存なやり方はどうすれば良いの? -std::numeric_limits<double>::max()とか -DBL_MAX でおk? Q2. テンプレートを型引数が整数型と浮動小数点型で分けたいんですが 同じ名前のテンプレート名のまま、テンプレートの特殊化的な簡単に済ませる方法は無い?
484 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 10:55:07.91 ID:6B047Ccs0.net] >Q2 template <typename T, bool = std::is_floating_point<T>::value> struct hoge {}; template <typename T> struct hoge<T, true> {};
485 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 11:05:23.85 ID:iHQcqnOH0.net] >>472 >Q2. こういう事? https://ideone.com/oWzlMP
486 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 13:22:08.35 ID:WuAwAiPA0.net] >>472 std::numeric_limits<double>::lowest()
487 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 13:56:48.76 ID:4Txko8z40.net] まりがとうございます >>473 >>475 すばらっし >>474 言葉足らずでスマンカッタorz 具体的型名で特殊化する普通の特殊化ではfloatとdoubleのそれぞれについて特殊化した定義を与えねばならないので >>473 みたいなやつを求めていたのです!ヽ(>∀<)ノ!!!111!1!
488 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 15:24:36.24 ID:AQKaesvCd.net] たまにはlong doubleも思い出してあげてください
489 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 23:11:41.90 ID:xhvNrk1GM.net] Boost.Optionalを使う際に、 対象クラスが自分自身の有効無効を変更できるようにしようとしてみたところ、 宣言時に宣言対象を引数にとって初期化できることに気づきました。 変数の引数に変数自身を使うのは仕様的にありなのでしょうか? ttps://wandbox.org/permlink/YLKYol7KdEOhpyGU
490 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 23:32:18.45 ID:9aMn2TSu0.net] ポインタか参照なら問題ない 中身は使えない
491 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:40:40.03 ID:dOOCYV+Z0.net] CObject obj; for(i=0; i<N; i++) { obj = new CObject(); ・・・(処理)・・・ } ↑みたいにdeleteせずにnew演算子でクラスオブジェクトを割り振り続けるプログラムってお行儀悪い? CObject obj; for(i=0; i<N; i++) { obj = new CObject(); ・・・(処理)・・・ delete(obj); } ↑こういうふうにすべき? 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
492 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:49:10.85 ID:+P0DkpYu0.net] unique_ptr使うべき
493 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:54:52.50 ID:2ADD+YWD0.net] 今時newなんかを自分で書いてることに疑問を持ったほうがいい
494 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:55:37.66 ID:b3AAvo5J0.net] >>480 お行儀の次元の話じゃない
495 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:01:31.48 ID:LLl+2Gg10.net] 手っ取り早く動かしたいその場限りのコードならそういうことをやることもある くらいかな
496 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:09:49.83 ID:HN9ze8O60.net] ビンラディン並みのテロリストだな
497 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:09:55.64 ID:MK7npuGj0.net] そんなにお行儀悪いんでつか(´;ω;`)・・・
498 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:43:03.85 ID:Ve
] [ここ壊れてます]
499 名前:qNn1690.net mailto: そういうのやりたいならJavaやC#やれ [] [ここ壊れてます]
500 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 01:21:31.16 ID:9riosu0F0.net] ポインタじゃないものにnewしたもの格納できるとでも思っているのかジャバグラマ上がりのトーシロー
501 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 01:32:41.73 ID:G9KSYPOz0.net] なんでdeleteしなくていいと思ったんや
502 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 01:39:46.98 ID:HN9ze8O60.net] 釣りだと思う
503 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 03:44:38.96 ID:MK7npuGj0.net] deleteしてからnewすることにします・・・ >>488 こうでしたorz CObject* obj;
504 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 06:00:07.99 ID:3K4Hzh4Z0.net] >>480 C++的には for(i=0; i<N; i++) { CObject obj; ・・・(処理)・・・ } でいいんじゃね
505 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 10:02:54.88 ID:EfCiDMro0.net] 大規模なコードで大量にオブジェクト生成するならアリだと思うけど その場合もnewしたものをdeleteするための仕組みは必須だしね 追跡できなくなる、もしくは自分で自分を破棄する仕組みも無いようではダメ
506 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 11:01:41.50 ID:lsKTgXIy0.net] ライブラリに分ける利点ってなんですかね
507 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 14:44:29.23 ID:MK7npuGj0.net] >>482 クラスのメンバ変数に他のクラスインスタンスを召喚するときとか コンストラクタでnewしてやらないといけないと思うの
508 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 14:47:38.93 ID:G9KSYPOz0.net] >>494 複数のプロジェクトで使いまわせる >>495 スマポ(かコンテナ)で大体のnewは回避できる そのケースも回避できる
509 名前:デフォルトの名無しさん [2018/05/02(水) 15:02:47.22 .net] >>495 別にnewしなくてもよくね? なんかサンプル出してみ? new無くしてやっから
510 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:18:42.29 ID:MK7npuGj0.net] >>497 class CTest { CFoo cfoo; void CTest() { cfoo = new CFoo(); } }; こんなんとかどうでしょう
511 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:23:28.41 ID:BwUG32HZa.net] >>498 class CTest { CFoo cfoo; void CTest(): cfoo() { } }; メンバ初期化子知らんのか
512 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:28:43.53 ID:hqQx66t6a.net] 山口メンバーも初期化できたらいいのに
513 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:29:15.41 ID:9riosu0F0.net] ヤバいなジャバ上がりw
514 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:36:00.09 ID:BwUG32HZa.net] ちなみに非PODならメンバ初期化子に書かなくてもデフォルトコンストラクタで初期化子される
515 名前:デフォルトの名無しさん [2018/05/02(水) 16:36:35.49 .net] そもそも>>498 の例なら初期化子自体いらんしw
516 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 17:10:02.19 ID:MK7npuGj0.net] >>499 そ、そうやって初期化したcfooはdeleteしなくてもいいんでつか?
517 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 17:15:22.77 ID:2RgXx2xAF.net] >>504 変数の寿命を理解してないのか? C/C++で変数の寿命を理解せずコード書くとメモリリークだらけになるから止めるか横着せず勉強するかしてくれ
518 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 17:19:29.16 ID:9riosu0F0.net] >>504 何言ってんだお前は そもそもdelete出来んだろ
519 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 17:35:57.58 ID:EH+UkdGd0.net] 教えてください やりたい事は ↓ https://stackoverflow.com/questions/14706954/how-to-override-the-text-displayed-for-a-property-in-the-propertygrid ここに出てるようなPropertyGridで、数値配列の値を16進で表示したい [0] 0x0001 [1] 0x0002 [2] 0x0003 .... 例えば↑とか、単にこれだけ そうとう調べまくったんだが、配列の例はみつけられなかった 配列でなければ、実装例は結構見つかるんだが・・・ 一見簡単そうなんだけど、俺のレベルでは不可能
520 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 18:09:52.99 ID:2RgXx2xAF.net] >>507 それC++の質問なの? .NETのライブラリ(=>C++/CLI)じゃなくて?
521 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 18:25:45.38 ID:EH+UkdGd0.net] いや、c# です
522 名前:片山博文MZ mailto:sage [2018/05/02(水) 18:26:58.58 ID:fs6y
] [ここ壊れてます]
523 名前:NkAId.net mailto: >>509 スレ違い [] [ここ壊れてます]
524 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 18:29:31.79 ID:EH+UkdGd0.net] ごめん間違えた、ここ C++のスレだった 隣で聞きます。
525 名前: mailto:sage [2018/05/02(水) 18:52:21.12 ID:R3g8E+PO0.net] >>504 delete しなくてもいいのです
526 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 19:04:04.70 ID:MK7npuGj0.net] >>505 >>506 >>512 み、みんな、親切にありがとう・・・
527 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 19:06:49.69 ID:U7aQES8cr.net] >>494 一度に作る分量が減るので間違えにくい 別々の人間が手分けして作れる
528 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 20:14:18.27 ID:sTDjib3HM.net] >>503 そもそも>>498 はコンパイルエラー(もしくは警告)になるだろ... class CTest { CFoo* cfoo; CTest(int x){ cfoo = new CFoo(x); } ~CTest(){ delete cfoo; } void ReNew(int x){ delete cfoo; cfoo = new CFoo(x); } }; みたいな奴を想定してたのかも知らんけどこれでもunique_ptr使えば良いだけだしね
529 名前:デフォルトの名無しさん [2018/05/02(水) 23:29:42.51 .net] どうせ>>498 の CFoo cfoo; はこれまた CFoo *cfoo; のつもりだったんだろう とりあえず>>499 の形にすればnewはなくせる ポインタを保持したい場合も生ポインタはやめたほうがいいね
530 名前:はちみつ餃子 mailto:sage [2018/05/02(水) 23:41:46.06 ID:g0SlpjdS0.net] 可能な限りスマートポインタを使え、そしてスマートポインタで駄目な場合はほとんどないってのはその通りなんだけど、 初心者が生ポインタをちゃんと理解したことのないままスマートポインタを使いこなせるとも思えぬ。 そこらへんはちゃんと分けて、今回の場合はまずは生ポインタを理解するという方向性で説明する場面じゃろ。
531 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 23:47:44.17 ID:MK7npuGj0.net] >>516 >>499 を仰ぎますm(_ _)m
532 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 00:10:52.91 ID:XlBZHwDZ0.net] もうスマポはスマポとして理解させたほうがいいような気がするけどな 下手な生ポの知識は初心者に有害だ
533 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 01:53:27.71 ID:OyWVOyw+0.net] ていうかコンストラクタだから返却値型いらんやん
534 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 02:06:40.03 ID:jt77zXjA0.net] ポインターをdeleteせずに扱う猛者がいると聞いて駆け付けてきた
535 名前:はちみつ餃子 mailto:sage [2018/05/03(木) 02:41:54.13 ID:HFudy7bE0.net] delete をしない戦略ってのは無くはないよ。 アプリケーションの起動時直後にガッと大量のメモリを必要として、 終了直前に全部解放するってパターンなら、 どうせプロセスの終了と一緒にリソースは回収されるのでわざわざメモリ解放の処理を入れる必要はない。 (C++ だとデストラクタは必ずしもメモリを解放するだけではないので注意が必要だが) だけどそういう戦略をとれるのはちゃんと理解した上で問題にならないことを確信できるだけの知識があってこそだわな。 というか、それ以上に、確保したのを解放しないのは「気持ち悪い」と感じる心が C/C++er にはある。
536 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 05:19:48.86 ID:qNLpdLzsd.net] 組み込みだとそもそも終了なんてものがなかったりする
537 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 20:37:30.17 ID:giVWGYEy0.net] 解放しないメモリをnewとか頭湧いてんのか
538 名前:はちみつ餃子 mailto:sage [2018/05/03(木) 20:40:51.26 ID:HFudy7bE0.net] あたまがあったまってるんだ。
539 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 21:00:46.14 ID:Nqnp2049M.net] 確保済みメモリに対してのnewってあるよ