使用有什么区别

这个问题在这里已经有了答案:

  • 在C ++ 11中'typedef'和'using'有什么区别? 4个答案

  • 引入了“使用样式”以允许模板化的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

    上一篇: What's the difference between using

    下一篇: Difference between typedef and C++11 type alias