15得票2回答
为什么在priority_queue中为std::tuple重载operator <似乎不起作用?

以下是 MWE 的示例: #include &lt;iostream&gt; #include &lt;tuple&gt; #include &lt;queue&gt; using namespace std; bool operator&lt;(tuple&lt;int, int, in...

15得票2回答
Requirements for std::ignore

C++11引入了一个名为std ::ignore的对象: const /* unspecified */ ignore; 为了简洁起见,让我们 typedef decltype(std::ignore) T; 据我所知,T 的唯一要求是它是 CopyAssignable,这是由于...

14得票1回答
标准为什么允许将一个右值引用的元组赋值给一个左值引用的元组?

似乎含有一个或多个引用的std::tuple在构建和赋值方面存在意外行为(特别是复制/移动构造和复制/移动赋值)。它与std::reference_wrapper(更改所引用的对象)和具有成员引用变量的结构(赋值运算符已删除)的行为不同。它允许方便的std::tie类似于Python的多返回值...

13得票2回答
在类上启用std::get支持

我需要特化哪些模板才能支持std::get函数?struct MyClass { int a; }; template &lt;const size_t I&gt; struct MyContainer { MyClass array[I]; }; 我需要专注于哪些方面才能够做到:M...

12得票1回答
元组映射函数应该返回什么?

我想实现一个通用的tuple_map函数,它接受一个函数对象和一个std::tuple,将该函数应用于元组的每个元素,并返回结果的std::tuple。实现非常简单,但问题是:这个函数应该返回什么类型?我的实现使用了std::make_tuple。然而,这里建议使用std::forward_a...

12得票1回答
为什么不能使用兼容类型的std::tuple元素逐个构造std::tuple?

我无法从兼容类型的std::tuple初始化元素。为什么它不能像boost::tuple那样工作? #include &lt;tuple&gt; #include &lt;boost/tuple/tuple.hpp&gt; template &lt;typename T&gt; struc...

12得票3回答
将元组连接作为类型

我正在尝试练习一些模板编程。也许有一种标准的方式来做这个,如果有的话,我会感激这样的答案,但我的主要目标是练习模板编程技巧,所以我试图自己实现它: 我需要将多个元组连接起来,但作为类型,而不是像std::cat_tuple那样。所以我需要像cat&lt;std::tuple&lt;int, ...

12得票3回答
std::get()如何与std::tuple一起使用?

尝试自己编写std::get&lt;N&gt;(std::tuple)方法后,我不确定编译器是如何实现它的。我知道std::tuple有一个像这样的构造函数:tuple(Args&amp;&amp;... args); 但是args...被赋值给了什么?我认为这对于了解std::get()的工...

12得票1回答
在运行时通过索引访问std::tuple元素的最佳方法

我有一个名为at的函数,旨在在运行时通过指定的索引访问std::tuple元素。 template&lt;std::size_t _Index = 0, typename _Tuple, typename _Function&gt; inline typename std::enable_i...

12得票3回答
使用{}和std::make_pair()尝试交换两个变量时表现不同的行为

我尝试使用std::tie()来交换两个变量,如下所示的代码(我知道可以使用std::swap,但我只是出于好奇才这样做): TBD#include &lt;iostream&gt; #include &lt;tuple&gt; using std::cin; using std::tie...