2 cbcwestwolf Cbcwestwolf 于 2016.04.15 18:15 提问

c++ 用decltype定义的问题

#include
#include
#include
#include
using namespace std;

int main()
{
string input = " cmp txt1 txt2 end";
vector vec;

decltype(vec.size()) index = 0;
for (; index < input.size() && input[index] == ' '; ++index);//index停在第一个非空格的字符上
if (index >= input.size())
{
    cout << "错误!输入内容为空\n";
    return -1;
}
...

断点显示进入for语句时index为“未定义标识符”,然后连if条件都没判断就退出了,想问问为什么

5个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.15 19:13

关掉优化编译重新断点 同时看你代码的条件是否符合

Cbcwestwolf
Cbcwestwolf 是在vs2013下实现的
一年多之前 回复
Cbcwestwolf
Cbcwestwolf 如何关闭编译优化?
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.15 20:04

vector vec;居然还可以这样定义的啊

Cbcwestwolf
Cbcwestwolf 哦哦,,,vector<string>,没打印出来
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.15 21:27

楼主这里不行?
图片说明

Cbcwestwolf
Cbcwestwolf 代码一样,但我的就是不行
一年多之前 回复
Cbcwestwolf
Cbcwestwolf 是的!
一年多之前 回复
qq_14982047
qq_14982047   2016.04.16 09:00
  1. VS2013 对C++11的标准并不是完全支持的,g++对新标准的支持会好些
  2. 你的vector没有指定具体的类型
Cbcwestwolf
Cbcwestwolf 回复在地图上飞行: 不我没加std ,是用的g++ -g 文件名.cpp -o 文件名
一年多之前 回复
qq_14982047
qq_14982047 回复Cbcwestwolf: 你是用的g++ -std=c++11 文件名 -o 文件名
一年多之前 回复
Cbcwestwolf
Cbcwestwolf vector后面有string的,代码复制过来没显示,,,可我在linux上用g++也有一样的问题
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.19 21:02

C++中有关各种变量声明和定义的问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!