2006-10-01-01-DAでは - project-enigma

2006-10-01-01-DAでは

>> Site top >> weblog >> 月別アーカイブ >> 2006年10月のlog >> 2006-10-01-01-DAでは

最終更新日付:2013/12/31 07:39:12


DAでは

2006 年 10 月 01 日

new 演算子と delete 演算子も事実上使えません。まる。

イマサラながら上記の事実に気付きました。環境は CodeWarrior です。どうやら new 演算子を使用すると、bad_alloc 例外に絡んで DA で使えない C++ の言語機能をコンパイラが使ってしまうようなんです。設定をイジクリまわせば回避できるのかもしれませんが、ひとまずのところ見つけられませんでした。例外処理や RTTI はオフってあるんですけどねぇ...また、CodeWarrior にバンドルされている MSL C++ ライブラリもロケール絡みで使えないことが分かりました。いずれも DA では使用できない大域を使っていることが主な原因と思われます。

そうなると、ヒープ領域にクラスオブジェクトを作成したい場合、初期化にコンストラクタが使えない...あ、placement new 構文はいけるのかな? ::MemPtrNew( ) で領域だけ確保してから placement new をしてやれば、メモリ確保と初期化を分離できるから、DA でもヒープに確保した領域にコンストラクタを適用できるのではないかと...後で試してみるとしましょう。

あー、ちなみにですね。上に書いてあることには事実誤認があるかもしれませんので、どうか鵜呑みにはなさらないで下さい。お気づきの方はご指摘いただけると大変助かります。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : Palm

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.