function不是std的成员

pspansong 2015-05-06 06:09:20
请问各位前辈 :
“function” : 不是“std”的成员,如何解决? 网上的一段代码,我拷过来学习下,我是vs2003环境
using namespace std;

#include "TestInfo.h"
#include <vector>

#include <sstream>
#include <iostream>
#include <functional>
#include <typeinfo>
#include <algorithm>

/**
* @brief 测试基础类。
*
*/
class TestBaseEX
{
public:

typedef std::function<bool(TestInfo&)> TestFun;
/**
* @brief 执行测试。
* @param[in] testShow 测试结果展示函数
*
*/
void OnTest(std::function<void(TestInfo&)> testShow)
{
for (auto it = m_Tests.begin(); it != m_Tests.end();
++it)
{
TestInfo info;
try
{
bool result = (*it)(info);
if (info.isWantException)
{
info.isOK = false;
}
else
{
info.isOK = result;
}
}
catch (...)
{
info.exception = "有异常";
if (info.isWantException)
{
info.isOK = true;
}
}
testShow(info);
}
}
public:
std::vector<TestFun> m_Tests;
};
...全文
1515 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2015-05-07
  • 打赏
  • 举报
回复
VS2012+
fly_dragon_fly 2015-05-07
  • 打赏
  • 举报
回复
#include <functional> 编译器至少要VS2010
苏叔叔 2015-05-06
  • 打赏
  • 举报
回复
使用头文件#include<function> function是一组函数对象包装类的模板,实现一个泛型的回调机制。
philzt 2015-05-06
  • 打赏
  • 举报
回复
第一眼看到 typedef std::function<bool(TestInfo&)> TestFun; 时,我吓了一跳,这什么语法... 后来试了下,果然是c++11的语法; vs2003不支持c++11的语法,要想用到11中的语言特性,建议用vs2010+的vs;
taodm 2015-05-06
  • 打赏
  • 举报
回复
今年是2015年啊,你用2003来逗乐?
iyomumx 2015-05-06
  • 打赏
  • 举报
回复
换VS2013或Clang/GCC,这样才会有C++11支持
赵4老师 2015-05-06
  • 打赏
  • 举报
回复
#include <functional>

64,676

社区成员

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

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