私は現在のプロジェクトにrapidxmlを含めることを試みています。しかし、それは構築されません。MSVCで奇妙なコードが壊れています。どういう意味ですか?
Visual Studioは、コードのこの部分に文句を言うでしょう(rapidxml.hpp:419 + 451):エラーC2061:
は419: void *memory = allocate_aligned(sizeof(xml_attribute<Ch>));
420: xml_attribute<Ch> *attribute = new(memory) xml_attribute<Ch>;
コンパイラは
rapidxml.hpp(420)言います:構文エラー:識別子 'メモリ'
これはコンパイラがどのように混乱するかをよく見ています。実際に私にはかなり混乱しています。 new(memory) xml_attribute<Ch>
の(memory)
の部分は何ですか?
(memory)
の部分を削除してもうまくコンパイルされます。
また、gccは(memory)
が含まれているとうまくコンパイルします。
編集:
ああ、私はいくつかのメモリのデバッグを行うためにDEBUG_NEW
でnew
をオーバーロードされます。 DEBUG_NEW
は新しいプレースメントをサポートしていません。
コンパイラよりもユーザを混乱させる方が簡単なはずです...コンパイラはその言語とすべての細部の詳細を知っている必要がありますが、ユーザは限られており、あまり知っているだけです。 –