谁能解释一下"using"的意思?
Could someone explain the meaning of "using"?
我不明白下面在C++中using的用法。
与 typedef 有什么区别?
有人可以举例说明吗?
template<typename DataType>
class DataWriter
{
using ObjType = std::function<void(DataType)>
// ...
}
没有区别。 [dcl.typedef]/2:
A typedef-name can also be introduced by an alias-declaration. The
identifier following the using
keyword becomes a typedef-name
[..]. It has the same semantics as if it were introduced by the
typedef
specifier.
即
using ObjType = std::function<void(DataType)>;
相当于
typedef std::function<void(DataType)> ObjType;
在您的示例中与typedef
没有区别。
它们是相同的:
typedef int a;
using a = int;
总的来说,它更通用,这就是引入它的原因:
可以模板化
template<class X> using smart = std::unique_ptr<X>;
可用于将符号导入当前作用域。
struct Derived : Base {
using Base::Fun;
};
我不明白下面在C++中using的用法。 与 typedef 有什么区别? 有人可以举例说明吗?
template<typename DataType>
class DataWriter
{
using ObjType = std::function<void(DataType)>
// ...
}
没有区别。 [dcl.typedef]/2:
A typedef-name can also be introduced by an alias-declaration. The identifier following the
using
keyword becomes a typedef-name [..]. It has the same semantics as if it were introduced by thetypedef
specifier.
即
using ObjType = std::function<void(DataType)>;
相当于
typedef std::function<void(DataType)> ObjType;
在您的示例中与typedef
没有区别。
它们是相同的:
typedef int a;
using a = int;
总的来说,它更通用,这就是引入它的原因:
可以模板化
template<class X> using smart = std::unique_ptr<X>;
可用于将符号导入当前作用域。
struct Derived : Base { using Base::Fun; };