作者:朱金灿
来源:http://blog.youkuaiyun.com/clever101/
习惯了用boost库的function,今天使用VS2005+sp1编译一个程序,用到了std::function,结果出现了:error C2039: "function": 不是"std"的成员的错误,但是我已经#include <functional>了啊!
上网搜了搜,初步判断是VS 2005并不支持std::function。于是安装了VS 2008,再次编译,还是出现编译错误:"function": 不是"std"的
成员。将std::function改为std::tr1::function也不行。
再次上网搜索,才发现TR1的错误在VC9的SP1中解决。请参考:
TR1 Fixes In VC9 SP1
作者还这样说:tr1::function can now store function objects with non-const function call operators. (This was a severe problem.)
VS 2005就已经能支持boost::function了,可见微软的STL不是一般的水,看来改天要试试STLport。另外在网上std::function貌似用得 还不如boost::function多。
本文探讨了在VS2005及VS2008中使用std::function遇到的问题,发现这两个版本都不支持该功能,并讨论了转而使用boost::function的情况。
6859

被折叠的 条评论
为什么被折叠?



