joh*_*co3 6 c++ regex gcc boost c++11
我是boost库的新用户.由于种种原因,我发现自己更多地考虑采用助推器.据我所知,似乎boost库是一种skunkworks沙箱,其中各种C++ TR功能用于即将进行的标准化,然后被C++委员会采用 - 想想boost :: filesystem和boost :: regex,
作为一个例子,我通过#include标头在visual studio中尝试了一些C++ 11正则表达式功能 - 这很好用,直到我移植到目标power pc平台,当时使用的是CodeSourcery的GCC 4.7.3 .不幸的是,我意识到在运行时,大部分正则表达式实现都是不完整或空的(甚至认为它已编译) - 通过一些功课,我应该事先意识到这一点,但是现在GCC 4.8.x已经出局了,该实现是v3标准C++库的一部分,所以现在它是一个不同的故事.
在一个理想的世界中,标准库应该像开发Java一样 - 编写一次,随处部署 - 但这不是现实.我最终希望转向标准库实现而不是Boost的正则表达式和文件系统实现.
我给出上述正则表达式历史的问题是,开发人员应该如何使用boost,是否可以在标准库采用这些功能时进行简单的搜索和替换boost头和命名空间,或者有更多的事情需要考虑.我想使用纯C++ 11代码而不依赖于第三方库.
从 Boost 库迁移到其 C++11 对应部分所需的工作量取决于特定 Boost 库的 C++11 一致性程度。在最简单的情况下,可能需要包含另一组标头并使用另一个名称空间。
在更复杂的情况下,Boost 库可能与 C++11 有一些微妙的不兼容(例如,在Boost.Thread V1 ~thread中用于调用detach()) - 这样的事情可能会“默默地”破坏代码的正确性,但它们很容易修复。
最后,Boost 库可以实现 C++11 中不存在的功能(例如,boost::bind 可以使用get_pointer函数进行扩展)。显然,将这样的代码移植到 C++11 并非易事。