perfect-forwarding 相关问题

完美转发描述了C ++ 11函数模板的一个属性,它允许正确地将参数推导为左值或右值,并将它们以相同的形式转发给其他函数。

为什么在模板替换过程中此包装分配器的构造函数采用错误的类型(完美的转发ctor?)>

[在某些情况下,我正在编写一个分配器,该分配器将基本分配器作为模板类型,除了将allocate()和deallocate()调用转发给基础分配器成员之外,什么也不做。 ...

回答 1 投票 3

在某些情况下,完美的转发实际上可以提高性能吗?

我不确定我是否正确理解完善的转发。我已经测试了两个函数:模板 T createA(Arg && a){return T(std :: forward

回答 1 投票 1

可变元组模板构造函数在一个元组中混合左值和右值

我想推迟一类(大)类的实例化,其中只有一小部分子集将被实例化。为此,我尝试在可变参数类中捕获构造函数的参数...

回答 1 投票 0

以正演方式获得具有value_type的类型

我创建了一个可以完美实现该功能的功能:template void push_back_3(T && container){使用containter_val_type =类型名T :: value_type;容器....

回答 1 投票 0

从仿函数类模板参数推导出的(衰减的)类型时,完美转发失败。为什么?

在下面的示例中,#include #include //好的://模板 decltype(auto)Runner(T && t,F f){return f(std :: forward

回答 2 投票 0

为什么编译器不选择`forward`的右值引用版本?

我写了一个类似的std :: forward实现,希望能找出编译器选择哪种版本。问题是,似乎从来没有选择右值引用版本。 #include

回答 1 投票 0

[...的语法,使用std :: forward进行参数包扩展

在C ++中,似乎通常可以在参数包名称之后直接使用...来扩展参数。例如,模板 void function(Tys ... params){function(...

回答 1 投票 0

为什么std :: is_invocable无法处理转发?

我有一个仅将函数调用转发到另一个类的类,我希望能够在我的转发类上使用std :: invocable <>。但是由于某些原因而失败...这是...

回答 3 投票 6

为什么std :: is_invocable无法转发句柄?

我有一个仅将函数调用转发到另一个类的类,我希望能够在我的转发类上使用std :: invocable <>。但是由于某些原因而失败...这是...

回答 3 投票 4

您是否会将C ++ RValue参考参数标记为const

我一直在切换Template Factory函数以使用(并理解)std :: forward以支持右值并移动语义。我通常用于模板类的样板工厂函数始终...

回答 2 投票 9

具有转发引用的静态多态性

我正在尝试使用静态多态性,如下面所示的简单示例。 #include template struct Base {decltype(auto)foo(){return static_cast&...

回答 1 投票 3

for_each_arg`的正确用法-转发过多?

我很高兴发现for_each_arg(...),这使处理参数包变得更加容易。 template F for_each_arg(F f,Ts && ... a){return(void)...

回答 3 投票 3

为什么将临时函数传递给线程函数时,两次调用move构造函数? [重复]

在下面的代码中,考虑到我的线程函数通过右值引用接受参数,因此我不明白为什么调用类的移动构造函数两次,所以我希望移动构造函数会... ...]

回答 1 投票 4

我可以通过元素的完美转发对std :: vector进行列表初始化吗?

我注意到,在更适合移动时,std :: vector的聚合列表初始化会执行复制初始化。同时,多个emplace_backs可以满足我的需求。我只能上来...

回答 1 投票 5

我可以通过元素的完美转发对std :: vector进行列表初始化吗?

我注意到,在更适合移动时,std :: vector的聚合初始化会执行复制初始化。同时,多个emplace_backs可以满足我的需求。我只能想出...

回答 1 投票 4

要前进还是不前进;如何确定在类用法的上下文中首选哪个?

class Test {public:typedef std :: set > DataSet;显式测试(const DataSet && d){for(auto&itr:d){std :: cout

回答 2 投票 3

前进或前进;如何确定在我的类使用情况下首选哪个?

class Test {public:typedef std :: set > DataSet;显式测试(const DataSet && d){for(auto&itr:d){std :: cout

回答 2 投票 0

了解'this'或其他参数是否是右值

假设我们有Base类及其成员函数Base doSomething(const Base&other)。我想知道如何确定此对象或其他对象是否为右值,例如,我需要一些...

回答 3 投票 -1

是否有合理的替代方法来处理超载和完美的转发?

如果我通过复制/移动接受一个值,然后对其进行移动,则似乎要复制LValues并移动RValues。在两种情况下,此代码都能正确有效地执行吗?是否合理...

回答 1 投票 3

C ++完美转发:如何避免悬空的引用

请考虑以下问题:我有许多类,每个类都实现一个get()函数。以下container1和container2是此类的示例:struct cheap_type {int v; ...

回答 2 投票 3

© www.soinside.com 2019 - 2024. All rights reserved.