美文网首页
C++ auto关键字解析

C++ auto关键字解析

作者: 狗子孙 | 来源:发表于2018-09-16 14:53 被阅读63次

    C++是一种强类型语言,变量的类型需要明确指出,C++11的auto关键字则提供了一种在编译期根据右值自动推测类型的能力。auto的使用很方便,主要优点是:

    1. 不需要推测复杂的表达式类型
    2. 某些情况必须用,例如模板类中无法推测结果的类型,只能用auto
    template <typename T,typename U>
    void mul(const T& t,const U& u)
    {
        auto tmp = t*u; // 直接用auto
        typedef decltype(t*u) M; // 将这种类型保留下来,后面还可以用
    }
    

    但是,使用auto也可能导致一些问题:

    1. 代码可读性降低。
    2. 代码跨平台性降低,别的编译器不一定支持。
    3. 可能存在二义性,例如auto s = "abc";,s是一个const char*,而非string等。

    相关文章

      网友评论

          本文标题:C++ auto关键字解析

          本文链接:https://www.haomeiwen.com/subject/tqffnftx.html