-
7 votesanswersviews
具有依赖qualified-id的class-member using-declaration应该是依赖名吗?
C 11标准的N3337草案于 [namespace.udecl] 中声明 using声明在声明区域中引入了一个名称,其中出现using声明 . 每个using声明都是声明和成员声明,因此可以在类定义中使用 . 在用作成员声明的using声明中,嵌套名称说明符应命名要定义的类的基类 . 这通常用于在派生类的基类public中创建受保护的typedef,如下例所示,它在最新版本的Clang中成功... -
722 votesanswersviews
C 11中'typedef'和'using'有什么区别?
我知道在C 11中我们现在可以使用 using 来写类型别名,比如 typedef : typedef int MyInt; 从我的理解来看,相当于: using MyInt = int; 这种新语法来自于努力表达“ template typedef ”: template< class T > using MyType = AnotherType< T, MyAllocat... -
10 votesanswersviews
从依赖基类访问类型
有谁知道为什么使用声明似乎不适用于从依赖基类导入类型名称?它们适用于成员变量和函数,但至少在GCC 4.3中,它们似乎被忽略了类型 . template <class T> struct Base { typedef T value_type; }; template <class T> struct Derived : Base<T> { // Ve... -
18 votesanswersviews
在using-declaration中,依赖名称可以在模板替换后呈现给构造函数吗?
在这个例子中: template<class T> struct S : T { using T::X; }; T::X 是一个从属名称,它引用 T 中的成员 X . 如果使用 T = X 实例化 S<T> : struct X { X(int) {} }; ... S<X> s(42); using声明是否会成为继承构造函数? Clang...