-
7 votesanswersviews
为什么有些Boost函数不需要使用名称空间前缀
考虑这段代码(或live example): #include <iostream> #include <boost/graph/adjacency_list.hpp> #include <boost/range/iterator_range.hpp> using std::cout; int main() { boost::adjacency_lis... -
55 votesanswersviews
自定义容器是否具有免费的开始/结束功能?
当创建按照通常规则播放的自定义容器类(即使用STL算法,使用行为良好的通用代码等)时,在C 03中实现迭代器支持和成员开始/结束函数就足够了 . C 11引入了两个新概念 - 基于范围的for循环和std :: begin / end . 基于范围的for循环理解成员开始/结束功能,因此任何C 03容器都支持基于范围的开箱即用 . 对于算法,推荐的方法(根据Herb Sutter的'Writing... -
2 votesanswersviews
为什么要将boost :: swap中的swap_impl移动到一个单独的命名空间?
我正在研究boost :: swap实现: namespace boost_swap_impl { template<class T> BOOST_GPU_ENABLED void swap_impl(T& left, T& right) { using namespace std;//use std::swap if argument depe... -
7 votesanswersviews
是否有合法的方法使用operator <<打印元组和对?
我有一组模板/函数允许我打印一个元组/对,假设元组/对中的每个类型都为它定义了 operator<< . 不幸的是,由于17.4.3.1,将 operator<< 重载添加到 std 是违法的 . 有没有其他方法让ADL找到我的 operator<< ?如果没有,在 namespace std{} 包裹我的过载是否有任何实际伤害? 感兴趣的人的代码:(我正在使...