代码之家  ›  专栏  ›  技术社区  ›  fredoverflow

递归typedef

  •  1
  • fredoverflow  · 技术社区  · 16 年前

    是否允许以下内容?

    typedef Foo<Bar> Bar;
    

    我的编译器抱怨“class bar”以前声明为“class bar”。

    3 回复  |  直到 16 年前
        1
  •  5
  •   anon    16 年前

    你所做的相当于:

    struct A {};
    struct B {};
    typedef A B;
    

    这是不合法的。

        2
  •  2
  •   Arkaitz Jimenez    16 年前

    如果bar是作为foo模板参数的类,则它不能是typedefed Foo<Bar> 同时。
    您将重新声明BAR,首先作为独立类,然后作为模板实例化,但甚至 typedef Foo<Whatever> Bar; 如果您已经将bar声明为类,则不会工作。

        3
  •  0
  •   Max Lybbert    16 年前

    不,这是不允许的。