使用有什么区别
这个问题在这里已经有了答案:
引入了“使用样式”以允许模板化的typedef:
template< typename T >
using int_map = std::map< int, T >;
你不能用typedef
来做到这一点。 我发现自己很奇怪它决定使用using
而不是typedef
作为关键字,但我想委员会在扩展typedef
语法时一定会发现一些问题。
我发现即使对于非模板,可读性也有很大提高:
typedef void (*FunctionPtr)(); // right-to-left, identifier in the middle of the definition
using FunctionPtr = void (*)(); // left-to-right, same as variables
它可能很小,但在模板元编程中,这种语法优势使程序更易于阅读,并使模板元函数更容易重构为constexpr
函数。 本质上取代
using T = type_expression;
constexpr auto v = value_expression;
此外(呼吁权威),它也在有效的C ++ 11/14指南草案中。
链接地址: http://www.djcxy.com/p/78641.html