リンケージなし

次の種類の ID には、リンケージがありません。

リンケージを持たない名前を使用して、リンケージを持つエンティティーを宣言することはできません。 例えば、リンケージを持たないエンティティーを指すクラスまたは列挙の名前、あるいは typedef 名を 使用して、リンケージを持つエンティティーを宣言することはできません。 次の例は、このことを示しています。

int main()  {
  struct A { };
//  extern A a1;
  typedef A myA;
//  extern myA a2;
}

コンパイラーは、外部結合を持つ a1 の宣言を許可しません。 クラス A は、リンケージを持っていません。 コンパイラーは、外部結合を持つ a2 の宣言を許可しません。 A がリンケージを持っていないので、typedefa2 は、リンケージを持っていません。

関連参照

IBM Copyright 2003