void *変数に別名を付けて、別の名前で使用できるようにしたい。これは、ポインタ(p)を何かに設定でき、エイリアス化された変数(pp)も同じアドレスに設定されることを意味します。例えばvoid * pointerへの定数参照
:
class foo {
private:
static void* p; //I just happen to need this for static variable
static const void*& pp;
};
//in cpp:
const void*& foo::pp = foo::p;
GCCが不平を言っている:私はあなたがここに欲しいことへのconst参照であると考えている間
error: invalid initialization of reference of type 'const void*&' from expression of type 'void*'
あなたの宣言は、あなたの定義と一致していません許可されます。後者はタイプ 'constのボイドのであるのに対し、(参照のconst voidへのポインタに)' *前者はタイプ 'constのボイドのあります&*& const'(const voidへのポインタへの定数参照)で、どちらも "voidへのポインタ"と互換性がありません。 –
Adam Rosenfield:入力エラーです。実際のコードは 'const void *&'で、まだエラーです。 – Pubby
リファレンスである静的メンバーを使用できますか?また、私はあなたが最初にvoidポインタを使う必要がある理由をもう一度考えるよう勧めます。これは、通常、悪い設計の兆候です。 – Dima