コードを読んでいる間、私は「名前を付け」2つの識別子持つクラスに出くわした:名前が2つのクラスですか?
class A_EXP Node
{
//..
};
が、私はこれが何を意味するのか理解できないのですが。誰かが私を助けてくれますか?
コードを読んでいる間、私は「名前を付け」2つの識別子持つクラスに出くわした:名前が2つのクラスですか?
class A_EXP Node
{
//..
};
が、私はこれが何を意味するのか理解できないのですが。誰かが私を助けてくれますか?
A_EXP
は恐らくマクロになっている可能性があります。 __declspec
または同様の宣言に展開され、コンパイラがクラスをオブジェクトコードとしてどのように出力するかを変更します。このパターンの一般的な用途は、次のようになります。
#define A_EXP __declspec(dllexport)
".. MSVCの世界で。" –
マクロが何も展開されないようにするには、どのコンパイラでも完全に合法です。 – cdhowie
'A_EXP'は、おそらくいくつかの並べ替えのデコレータマクロである - それはおそらくいくつかの状況下で、そして下の何もいくつかのコンパイラ固有の構文(可視性コントロール?)に展開しますその他。 –
'A_EXP'は' __dllspec(dllexport) 'の定義になります –
シナリオによっては' __declspec(dllexport) 'や' __declspec(dllimport) 'に展開されると思います。 – tmpearce