C++11之 auto

C++11类型推导html

 

一、使用auto的时候,编译器根据上下文状况,肯定auto变量的真正类型。auto在C++14中能够做为函数的返回值,所以auto AddTest(int a, int b)的定义是没问题的。函数

auto AddTest(int a, int b) 
{
    return a + b;
}

int main()
{
    auto index = 10;
    auto str = "abc";
    auto ret = AddTest(1,2);
    std::cout << "index:" << index << std::endl;
    std::cout << "str:" << str << std::endl;
    std::cout << "res:" << ret << std::endl;
}

 

二、只能用于定义函数,不能用于声明函数。spa

#pragma once
class Test
{
public:
    auto TestWork(int a ,int b);
};

   但若是把实现写在头文件中,能够编译经过,由于编译器能够根据函数实现的返回值肯定auto的真实类型。code

#pragma once
class Test
{
public:
    auto TestWork(int a, int b)
    {
        return a + b;
    }
};

 

三、htm

  auto 关键字。这会依据该初始化子(initializer)的具体类型产生参数:blog

  

  除此以外,decltype 可以被用来在编译期决定一个表示式的类型。ip

  

参考:get

一、http://www.javashuo.com/article/p-qazjplio-er.html
编译器

二、it

相关文章
相关标签/搜索