- 1 名前:デフォルトの名無しさん [2010/03/05(金) 16:51:13 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.71【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1264774545/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
- 197 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 22:00:43 ]
- operator new/deleteのオーバーロードとかplacement new/deleteはたまに使うけどそれの配列版は一度も使った事ない俺ザンギュラ
というかコンパイラで挙動が違うし、ググッても仕様が良く解らんしで諦めた
- 198 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 22:54:00 ]
- アロケータの自作は理解が深くないと大変なことになるから怖いよね
- 199 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 22:56:32 ]
- VCだと要素数を格納する分だけ余分に確保して、
その次のアドレスを返すんだっけ
- 200 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 22:57:02 ]
- アロケータの自作なんて本当に必要かどうか
さんざん吟味して原則的に及び腰になるべし。
- 201 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 23:07:45 ]
- Scoped Allocatorなら組み込みでも使えそうな予感
- 202 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 02:28:15 ]
- >>199
gccもそんなだったはず あとPODのときは要素数領域を確保しないとかあった気がする
- 203 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 06:41:37 ]
- PODじゃないけどデストラクタがない場合ってどうなんだろ?
確かめた事無いや
- 204 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 06:51:18 ]
- placement newのデストラクタがない場合?クラスが動的に領域を確保する
物じゃなければデストラクタを意図的に呼び出さなくても実害はなかったと思う 推奨されないけど
- 205 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 06:55:36 ]
- こんな感じか
class A { int i; }; class B { int* p; public: B() : p(new int[100]) {} ~B() { delete[] p; } }; int main() { char c[1000]; A* ap = new (c) A; // ap->~A(); // 無くても実害はない B* bp = new (c) B; bp->~B(); // ないとメモリリークする }
- 206 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 07:29:32 ]
- いや、そういう話じゃなくて、
配列newで要素数を格納するのはデストラクタ呼ぶループのためだから (new側は要素数が分かるので特に必要はないはず) デストラクタがなければPODじゃなくても配列newで要素数分確保する必然性はないよね、と まあ確保しても実害は無いから自分で配列newを実装する場合は無条件で確保すればいいんだけど デフォルトではどうなってんのかな、と
|

|