Joh*_*itb 31
不,你不能在C++ 03中可靠地做到这一点,因为pair引用的构造函数T和创建对引用的引用在C++ 03中是不合法的.
请注意,我说"可靠".一些常见的编译器仍在使用(GCC,我测试GCC4.1,@Charles报道GCC4.4.4)不允许形成于基准的基准,但最近也允许它作为他们执行基准崩溃(T&是T,如果T是一个参考类型).如果您的代码使用了这些东西,那么在您尝试并查看之前,您不能依赖它来处理其他编译器.
听起来你想要使用它 boost::tuple<>
int a, b;
// on the fly
boost::tie(a, b) = std::make_pair(1, 2);
// as variable
boost::tuple<int&, int&> t = boost::tie(a, b);
t.get<0>() = 1;
t.get<1>() = 2;
Run Code Online (Sandbox Code Playgroud)
小智 25
在C++ 11中,您可以使用,并且该类型的对象将完全按照您的需要运行.std::pair<std::reference_wrapper<T>, std::reference_wrapper<U>>
我认为有std::pair住房参考是合法的.std::map采用std::pair与const类型,毕竟不能被分配到.
我想要一个
pair<T&, U&>并能够分配另一对
分配将不起作用,因为您无法重置引用.但是,您可以复制初始化此类对象.
| 归档时间: |
|
| 查看次数: |
18735 次 |
| 最近记录: |