扫了一下,没有一个回答到点儿上的。
我给你总结一下:
GCC要使用4.3.x以上版本,加编译选项:-std=gnu++0x,就可以直接在std命名空间内使用。不要显式的使用std::tr1,这个命名空间被VC9支持,但被VC10以及GCC4.3.x以上所抛弃!
示例:
C/C++ code
#include
int main()
{
std::shared_ptr sp(new int(10));
return 0;
我给你总结一下:
GCC要使用4.3.x以上版本,加编译选项:-std=gnu++0x,就可以直接在std命名空间内使用。不要显式的使用std::tr1,这个命名空间被VC9支持,但被VC10以及GCC4.3.x以上所抛弃!
示例:
C/C++ code
#include
int main()
{
std::shared_ptr sp(new int(10));
return 0;
}
我实际按上面的使用了一下:Linux环境下
头文件使用 #include <tr1/memory>
std::tr1::shared_ptr 可以使用,跟编译器的版本有关系吧。