在vs2013上面编译如下代码,c++11的特性,编译出错,求助

我看你有戏 2018-06-09 10:13:17

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <thread>
#include "iostream"
using namespace std;
thread_local int g_n = 1;

void f()
{
g_n++;
printf("id=%d, n=%d\n", std::this_thread::get_id(), g_n);
}

void foo()
{
thread_local int i = 0;
printf("id=%d, n=%d\n", std::this_thread::get_id(), i);
i++;
}

void f2()
{
foo();
foo();
}


int _tmain(int argc, _TCHAR* argv[])
{
g_n++;
f();
std::thread t1(f);
std::thread t2(f);

t1.join();
t2.join();


f2();
std::thread t4(f2);
std::thread t5(f2);

t4.join();
t5.join();
return 0;
}








1>------ 已启动生成: 项目: ConsoleApplication2, 配置: Debug Win32 ------
1> ConsoleApplication2.cpp
1>c:\users\hjg\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2.cpp(9): error C2144: 语法错误:“int”的前面应有“;”
1>c:\users\hjg\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2.cpp(9): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\users\hjg\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2.cpp(19): error C2144: 语法错误:“int”的前面应有“;”
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========









...全文
995 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看你有戏 2018-06-11
  • 打赏
  • 举报
回复
引用 2 楼 paschen 的回复:
VS2013对C++11支持程度不多,VS2015是可以通过编译
谢谢了,我已经升级到2017了 ,可以编译通过,发现c++ 11增加了好多功能啊,但是代码写发有点古怪,不过还是蛮实用的
paschen 版主 2018-06-09
  • 打赏
  • 举报
回复
VS2013对C++11支持程度不多,VS2015是可以通过编译
赵4老师 2018-06-09
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧