首页 > 代码库 > auto用法
auto用法
在C++11中,如果编译器在定义一个变量的时候可以推断出变量的类型,不用写变量的类型,你只需写auto即可。
第一种用法:自动推到内置类型
int x = 100; //C++ 11 auto x = 100;
第二种用法:自动推导模版和迭代器类型
vector<int> vec; auto iter = vec.iterator();
第三种用法:用于模版
template <typename BuiltType, typename Builder> void makeAndProcessObject(cosnt Builder& builder) { BuiltType val = builder.makeObject(); //do something }
上面的代码,我们看到这里需要两个模板参数:一个是Builder对象的类型,另一个是Builder创建出的对象的类型。糟糕的是创建出的类型无法被推导出,所以每次你必须这样调用:
MyObjBuilder builder; makeAndProcessObject<MyObjBuilder>(builder);
使用C++ 11后的修改为:
template <typename Builder> void makeAndProcessObject(const Builder& builder) { auto val = bulder.makeObject(); //... } MyObjBuilder builder; makeAndProcessObject(builder);
auto用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。