c++ 中decltype怎么用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 中decltype怎么用?相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
int main()
string s("Hello World!!!");
decltype(s.size()) punct_cnt = 0;
for (auto c : s)
if (ispunct(c))
++punct_cnt;
cout << punct_cnt << " punctuation characters in " << s << endl;
return 0;
报错如下:
3_5.cpp: In function ‘int main()’:
3_5.cpp:7:19: error: ‘decltype’ was not declared in this scope
3_5.cpp:7:21: error: expected ‘;’ before ‘punct_cnt’
3_5.cpp:8:12: error: ‘c’ does not name a type
3_5.cpp:11:2: error: expected ‘;’ before ‘cout’
3_5.cpp:11:10: error: ‘punct_cnt’ was not declared in this scope
3_5.cpp:12:2: error: expected primary-expression before ‘return’
3_5.cpp:12:2: error: expected ‘)’ before ‘return’
程序需要怎么改?是不是需要再include点什么啊?
2、从语义上说,decltype的设计适合于通用库编写者与编程新手。总体上说,对于目标对象或函数,由decltype推导出的类型与源码中的定义可精确匹配。而正如sizeof操作符一样,decltype亦不需对操作数求值。 参考技术A 不知道你什么编译器,如果是gnu的,加编译参数-std=c++11,如果是微软系列的,去微软官网查是否支持decltype,然后按照文档修改。 参考技术B decltype包含于当前的C++标准C++11中,并由许多编译器以扩展的形式提供:微软在Visual C++ 2010编译器中提供了decltype操作符,基本实现了标准委员会提案中所描述的语义,并且在托管代码或原生代码中都可使用。据其文档称,这一实现“主要对编写模板库的开发者有用。”从2008年3月5日发布的4.3版开始,GCCC++编译器也加入了decltype操作符。这一操作符也已纳入了Codegear的C++ Builder 2009、Intel C++编译器与Clang。[1]
C++ Primer阅读笔记:decltype
目录
简介
Hello!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
以上是关于c++ 中decltype怎么用?的主要内容,如果未能解决你的问题,请参考以下文章