草庐IT

make_member_delegate

全部标签

c++ - 你能分配一个与 make_shared 等效的数组吗?

buffer=newchar[64];buffer=std::make_shared(char[64]);???你能用make_shared()为数组分配内存吗??我可以:buffer=std::make_shared(newchar[64]);但这仍然涉及调用new,据我了解make_shared更安全、更高效。 最佳答案 您需要共享分配的内存吗?您可以改用std::unique_ptr和std::make_unique在C++14上可用:autobuffer=std::make_unique(64);会有一个std::make_

c# - c#中的委托(delegate)和c++中的函数指针有什么区别?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:aretherefunctionpointersinc#?我有兴趣找出delegate之间的区别在C#和functionpointer中在C++中。 最佳答案 C#中的委托(delegate)是具有内置迭代器的类型安全函数指针。保证指向具有指定签名的有效函数(与C中的指针可以强制转换为指向谁知道什么不同)。它还支持迭代多个绑定(bind)函数的概念。在C#中,委托(delegate)是多播,这意味着它们可以迭代多个函数。例如:classProgram{de

c# - c#中的委托(delegate)和c++中的函数指针有什么区别?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:aretherefunctionpointersinc#?我有兴趣找出delegate之间的区别在C#和functionpointer中在C++中。 最佳答案 C#中的委托(delegate)是具有内置迭代器的类型安全函数指针。保证指向具有指定签名的有效函数(与C中的指针可以强制转换为指向谁知道什么不同)。它还支持迭代多个绑定(bind)函数的概念。在C#中,委托(delegate)是多播,这意味着它们可以迭代多个函数。例如:classProgram{de

c++ - C++ 中的长委托(delegate)链

Thisisdefinitelysubjective,butI'dliketotrytoavoiditbecomingargumentative.Ithinkitcouldbeaninterestingquestionifpeopletreatitappropriately.在我最近的几个项目中,我曾经实现过长委托(delegate)链很常见的架构。经常会遇到双委托(delegate)链:boolExists=Env->FileSystem->FileExists("foo.txt");而且三重委托(delegate)并不罕见:Env->Renderer->GetCanvas()->T

c++ - C++ 中的长委托(delegate)链

Thisisdefinitelysubjective,butI'dliketotrytoavoiditbecomingargumentative.Ithinkitcouldbeaninterestingquestionifpeopletreatitappropriately.在我最近的几个项目中,我曾经实现过长委托(delegate)链很常见的架构。经常会遇到双委托(delegate)链:boolExists=Env->FileSystem->FileExists("foo.txt");而且三重委托(delegate)并不罕见:Env->Renderer->GetCanvas()->T

c++ - Valgrind 在 std::make_unique 中显示内存泄漏

我正在使用Valgrind检查内存泄漏。不幸的是,我收到了Leak_DefinitelyLost警告。附件是我的代码的简化版本,它重现了错误:#include#include#include#includeusingnamespacestd;classBase{public:explicitBase(doublea){a_=a;}virtualvoidfun()=0;protected:doublea_;};classDerived_A:publicBase{public:Derived_A(doublea,vectorb,vectorc):Base(a),b_{b},c_{c}{}v

c++ - Valgrind 在 std::make_unique 中显示内存泄漏

我正在使用Valgrind检查内存泄漏。不幸的是,我收到了Leak_DefinitelyLost警告。附件是我的代码的简化版本,它重现了错误:#include#include#include#includeusingnamespacestd;classBase{public:explicitBase(doublea){a_=a;}virtualvoidfun()=0;protected:doublea_;};classDerived_A:publicBase{public:Derived_A(doublea,vectorb,vectorc):Base(a),b_{b},c_{c}{}v

c++ - `std::make_tuple` 的原因是什么?

我的意思是为什么std::make_tuple存在?我知道在某些情况下,该函数会减少您必须输入的字符数量,因为您可以避免使用模板参数。但这是唯一的原因吗?是什么让std::tuple函数存在而其他类模板没有这样的函数?仅仅是因为在这种情况下您可能会更频繁地使用std::tuple吗?以下是std::make_tuple减少字符数量的两个示例://Avoidingtemplateparametersindefinitionofvariable.//Considerthattemplateparameterscanbeverylongsometimes.std::tuplet(0,0.0)

c++ - `std::make_tuple` 的原因是什么?

我的意思是为什么std::make_tuple存在?我知道在某些情况下,该函数会减少您必须输入的字符数量,因为您可以避免使用模板参数。但这是唯一的原因吗?是什么让std::tuple函数存在而其他类模板没有这样的函数?仅仅是因为在这种情况下您可能会更频繁地使用std::tuple吗?以下是std::make_tuple减少字符数量的两个示例://Avoidingtemplateparametersindefinitionofvariable.//Considerthattemplateparameterscanbeverylongsometimes.std::tuplet(0,0.0)

C++:value_type 与 make_pair,哪个更快用于 map 插入?

typedefmapKVMap;KVMapkvmap;kvmap.insert(KVMap::value_type(key,val));kvmap.insert(make_pair(key,val));以上哪个选项插入到STL映射总是更快?为什么?注意:我很清楚insert()比使用[]=向map添加(而不是更新)键值对更快。请假设我的查询是关于添加,而不是更新。因此我将其限制为insert(). 最佳答案 第一个可能是'epsilon-faster',因为这个(从标准中的23.3.1开始):typedefpairvalue_typ