2017-10-10 81 views
2

在我的项目中,我使用boost::asio进行网络和线程管理。我想使用现代C++的一些功能,例如共享指针。如果我已经使用Boost,我应该更喜欢Boost还是C++ 11标准库?

有两种选择:boost::shared_ptr,因为我已经使用Boost,而std::shared_ptr因为我使用的是C++ 11编译器。据我所知,这些基本上是相同的,但是它们是互不兼容的。

我读过,我应该更喜欢标准库组件,而不是毫无意义地使用外部依赖。不过,我仍然会使用Boost(至少在他们决定将ASIO集成到标准库之前),所以我仍然需要这种依赖性。

共享指针只是一个例子,这个问题适用于标准库从升压接管所有功能,如functionbindthread

考虑到我的情况,这是首选的实施该功能?是否有任何关于选择的问题,在使用某些其他Boost或标准库组件时,我需要使用Boost还是标准库版本?

+0

当你可以从标准库中获得相同的结果时,使用boost替代的原因是什么?我不知道任何 – user463035818

+0

意见基础?也许我是一个教条式的老猫,但对我的反对意见是没有道理的。因此答案是具体的。 – Bathsheba

+0

如果关于使用标准的意见是标准意见,它不应该只是一个标准吗? – AOK

回答

6

虽然加速是未来C++标准的事实给料机,是标准化,因此你总是处于兼容性休息的摆布,如果你选择在C++标准库的推动作用。 (例如,查看对Boost Spirit的历史性突破性变化)。

因此,只要有可能,总是要将代码迁移到C++标准库。

编译器优化也可以更容易地用C++标准库函数进行,因为它们的精确行为是由标准定义的。

相关问题