草庐IT

unique_value

全部标签

c++ - get_unit_value 在 boost ODEINT 中的作用

在以下代码中来自Boostlibrary:templatestructget_unit_value_impl{staticTvalue(constT&t){returnt;}typedefTresult_type;};...templatetypenamedetail::get_unit_value_impl::result_typeget_unit_value(constT&t){returndetail::get_unit_value_impl::value(t);}我不清楚get_unit_value的作用。它有什么作用?我们传递一些东西给它,它返回相同的值。为什么有人要把它包装

c++ - 在 C++ 中初始化静态 std::map<int, unique_ptr<int>>

这是一个与此post类似的问题.我认为最有前途的答案与模板化静态初始化有关。这是该答案的类(class):templateclasscreate_map{private:std::mapm_map;public:create_map(constT&key,constU&val){m_map[key]=val;}create_map&operator()(constT&key,constU&val){m_map[key]=val;return*this;}operatorstd::map(){returnm_map;}};用法:std::mapmymap=create_map(1,2)(

带有 unique_ptr 的 C++ 嵌套映射

我目前正在学习C++并专注于STL。我没有找到这个问题的答案,所以问题来了:如何在数据结构中设置元素map>>?以下带有一些注释的代码说明了这个问题:#include#include#include#includeusingnamespacestd;//UsedintheexamplestructResource{};intmain(intargc,char**argv){//Iwasabletogetthefollowingmaprunningfine//int->{string->unique_ptr}map>>data;map>toBeInserted;toBeInserted[

c++ - 枚举类 : does not name a value error

我有enumclassErrorLevel{VERBOSE,DEBUG_,INFORMATION,WARNING,ERROR};这个有效:assertDetectionParameters(parameterSet,ErrorLevel::WARNING);这不是:assertDetectionParameters(parameterSet,ErrorLevel::ERROR);Error1errorC2589:'constant':illegaltokenonrightsideof'::'Error2errorC2059:syntaxerror:'::'Resharper说:"Err

c++ - 我现在应该按值(value)传递吗?

在此talk(对声音感到抱歉)ChandlerCarruth建议在绝大多数情况下不要通过引用传递,甚至是const引用传递,因为它限制了后端执行优化的方式。他声称在大多数情况下拷贝可以忽略不计-我很高兴相信,大多数数据结构/类等在堆栈上分配了非常小的部分-特别是与后端必须假设指针相比别名和所有可以对引用类型做的讨厌的事情。假设我们在堆栈上有一个大对象-比如说~4kB和一个对该对象的实例执行某些操作的函数(假设是独立函数)。传统上我会写:voidDoSomething(ExpensiveType*inOut);ExpensiveTypedata;...DoSomething(&data)

java - 最有值(value)球员 : : Event Bus pattern instead of Listener

这个问题更倾向于范式。为什么我们不在MVP环境中使用事件总线而不是监听器?通常,“P”部分具有View和模型引用的依赖注入(inject)。当然,这有一个优势,即通过Presenter显示View和模型之间的明确契约,这更具可读性。但是,让演示者从View中监听事件并且事件携带View有效负载(例如:json表示)不是一种更简洁的方法。演示者回话View也是如此。View将监听来自演示者的事件。主要优点是,我们不必为View和演示者之间的每个契约编写接口(interface)。如果您查看code你会看到演示者正在接触文本字段等View细节,我相信这会增加View和演示者之间的耦合。比如

c++ - 如何调整 unique_ptr vector 的 vector 大小?

如何在一行中正确调整unique_ptrvector的大小而不gcc给出有关已删除函数的编译错误?vector>>a;a.resize(.....)更新:这是我使用的代码,可以正常工作。intwidth,height;vector>>a;a.resize(width);for(inti=0;i如果可能的话,我想一次调整大小,就像调整vector的vector的大小一样;vector>intObj;intObj.resize(width,vector(height,int()));但每当我尝试使用以下方法调整上述vector的大小时,我都会收到此错误;a.resize(x,vector>

c++ - 具有类型删除析构函数的 unique_ptr 不太有效(有警告)

有一个不错的小技巧here允许使用std::unique_ptr不完整的类型。相关代码如下://File:erasedptr.h#include#include//typeeraseddeletor(animplementationtypeusing"veneer")templatestructErasedDeleter:std::function{ErasedDeleter():std::function([](T*p){deletep;}){}};//Aunique_ptrtypedeftemplateusingErasedPtr=std::unique_ptr>;//Declar

c++ - Boost.asio 和异步链,unique_ptr?

我对异步编程不是很熟悉,我有一个问题。我的问题如下。给定boost.asio中C++11的echo_server示例:http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp我想知道std::make_shared可以在C++14中替换为std::unique_ptr在C++14中,避免了引用计数的开销。我不确定,因为我们有shared_from_this()但不是像unique_from_this()这样的东西,那么我怎样才能访问unique_ptr从里面t

c++ - new T(...) 与 std::make_unique<T>(...).release()

我正在查看companioncode的"HourglassAPI"talkCppCon2014的主要内容是通过使用具有C签名的函数包装类的成员函数来为C++库提供CAPI。除其他外,我对对象的构造方式很感兴趣。在构造新的hairpoll对象的函数hairpoll_construct中,通过获取指针std::make_unique(person).release()实际上是在处理异常的函数中调用的。一个更简单的方法是求助于一个普通的newhairpoll(person)哪些场景更适合前者?这是否与这个特殊API的工作方式有关,还是比这更通用? 最佳答案