【发布时间】:2012-07-30 20:14:09
【问题描述】:
我在我的代码中使用了很多 boost,但到目前为止还没有使用 std::tr1。现在我需要一个更复杂的函数指针,就像这两个可以提供的那样。不幸的是,C+11 还不是一个选项。我读到boost::function 对于某些编译器可能会很棘手,例如(Visual Studio 7.1 之前的版本需要一个特殊的portable syntax)但是没有找到关于这个主题的std::tr1::function 的任何信息。两者在内存使用、速度和兼容性方面有什么重要区别吗?
编辑:我目前使用的是 gcc 4.7,但代码也应该在 Visual Studio 上编译,最好也可以在 2005 年等稍微过时的版本上编译
【问题讨论】:
-
关于内存使用和速度的差异肯定取决于实现,因此在不知道您的平台/编译器的情况下回答这个问题有点困难。除了两者都有不小的开销,所以如果性能/内存真的很紧张,你可能不想使用任何一个,否则我怀疑差异是否足够大。兼容性到底是什么意思?
标签: c++ boost tr1 boost-function