我正在使用VS2008中的tr1命名空间编写一些东西.当C++ xx被批准时会发生什么?这是否发生在其他C++版本之前?tr1的东西仍然可以使用,还是我必须更改我的所有内容?我意识到我正在做出一个非常大的假设,即批准将在某一天发生.我知道你很可能没有人为MS工作或为GCC做贡献,但如果你有这些改变的经验,我将不胜感激.
Ter*_*fey 10
std :: tr1将成为C++ 1x中std的一部分(std :: tr1 :: shared_ptr变为std :: shared_ptr等).只要该编译器声称实现TR1,std :: tr1将继续存在.在某些时候,您的编译器可能会删除该声明,并因此删除std :: tr1.这可能永远不会发生.
std :: tr1已经被"复制"到Visual Studio 2010 Beta中的命名空间std中(通过using指令)
C++ 0x的维基百科条目说:"大部分新库在C++标准委员会的图书馆技术报告(称为TR1)中定义,该报告于2005年出版.目前可以使用TR1的各种全部和部分实现.命名空间std :: tr1.对于C++ 0x,它们将被移动到命名空间std.但是,当TR1功能被带入C++ 0x标准库时,它们会在适当的情况下升级到C++ 0x语言功能在最初的TR1版本中不可用.此外,它们可以通过C++ 03下可能的功能进行增强,但不是原始TR1规范的一部分."