草庐IT

default-constructor

全部标签

c++ - 我怎么说 "noexcept if execution of protected base constructor is noexcept"?

我们遇到过这种情况,想知道解决它的最佳方法templatestructA:T{A(T&&t)noexcept(noexcept(T(std::move(t)))):T(std::move(t)){}};不幸的是编译失败,因为T的移动构造函数是protected,我们只能在*this的构造函数初始化列表中调用它。使这项工作有什么变通办法,或者甚至有标准的方法吗? 最佳答案 您正在寻找noexcept(std::is_nothrow_move_constructible::value):http://en.cppreference.co

c++ - 隐式删除的默认构造函数适用于 C++14

我正在为一些没有编译的代码做一些测试,我发现这段代码:structA{A(int){};virtualvoidfoo()=0;};structB:publicvirtualA{virtualvoidbar()=0;};structC:publicB{C():A(1){}virtualvoidfoo()override{}virtualvoidbar()override{}};intmain(){Cc;return0;}在C++11中无法编译(在g++7.0.1上),'B::B()'被隐式删除,因为默认定义格式不正确,而在C中++14编译成功。我试图找出C++14的哪个新特性允许它工作,

c++ - 当其他构造函数存在时,为什么 "ctor() = default"会改变行为?

为什么structwrapper{explicitwrapper(void*);wrapper()=default;intv;};intmain(){returnwrapper().v;}//YoushouldrunthisinDebugmode返回0xCCCCCCCC,而structwrapper{wrapper()=default;intv;};intmain(){returnwrapper().v;}和structwrapper{intv;};intmain(){returnwrapper().v;}都返回0? 最佳答案 在值

iphone - 警告 : XXXX has different visibility (default) in YYYY and (hidden) in ZZZZ

我正在尝试制作一个使用OpenCV和另一个C++库的iPhone应用程序。它似乎可以很好地编译和链接。它确实有效。只是我想摆脱这个丑陋的警告:ld:warning:std::vector>::_M_insert_aux(__gnu_cxx::__normal_iterator>>,intconst&)hasdifferentvisibility(default)in/Users/nacho4d/Documents/Projects/iOS/iAR/opencv_device/lib/libcxcore.a(cxdatastructs.o)and(hidden)in/Users/nach

c++ - std::default_random_engine 生成介于 0.0 和 1.0 之间的值

我希望能够生成介于0.0和1.0之间的随机值我试过std::default_random_enginegenerator;std::uniform_real_distributiondistribution(0.0,1.0);floatmyrand=distribution(generator);在循环中生成随机值总是给我这些值:0.0000220.0850320.6013530.8916110.9679560.1896900.5149760.3980080.2629060.7435120.089548我该怎么做才能真正获得随机值?如果我总是得到相同的,那似乎不是随机的。

c++ - :className() mean in a constructor for className? 是什么

我在我正在处理的代码库中看到一些代码如下:ZfooName::ZfooName(intmagoo):ZfooName(){fGoo=magoo;}我假设这是一个C++11功能,因为它在VS2012中中断,但这是什么意思? 最佳答案 这是C++11中的新特性。它称为委托(delegate)构造函数。构造函数首先调用默认构造函数(被委托(delegate)给的构造函数)。默认构造函数返回后,执行委托(delegate)构造函数的主体。参见http://www.stroustrup.com/C++11FAQ.html#delegating

c++ - 编译器生成的构造函数

这个问题在这里已经有了答案:Conditionsforautomaticgenerationofdefault/copy/movectorandcopy/moveassignmentoperator?(3个答案)关闭5年前。这只是一个快速问题,用于正确理解当您使用这样的构造函数创建类时会发生什么:classA{public:A(){}};我知道没有生成默认构造函数,因为它已经定义但是是由编译器生成的复制和赋值构造函数,或者换句话说我需要声明私有(private)复制构造函数和私有(private)赋值运算符以防止这种情况发生?classA{private://neededtopreve

c++ - 是否保证默认构造函数将内置类型自动初始化为 0?

在您开始将其标记为重复之前,我已经阅读了this.但它没有回答我的问题。链接的问题讨论的是C++98和C++03,但我的问题是关于C++11引入的默认构造函数。考虑以下程序(参见现场演示here):#includestructTest{ints;floatm;Test(inta,floatb):s(a),m(b){}Test()=default;}t;intmain(){std::cout我的问题是编译器在这里提供的默认构造函数总是将C++11和C++14中的内置类型默认初始化为0,当它们是class和struct时成员。C++11标准保证这种行为吗? 最佳

完美解决:Nginx安装后,/etc/nginx/conf.d下面没有default.conf文件

目录1问题:2解决方法方法一:方法二:3查看1问题:/etc/nginx/conf.d下面没有default.conf文件。2解决方法方法一:自己创建default.conf文件。vi/etc/nginx/conf.d/default.conf添加如下内容:server{listen80;server_namelocalhost;#access_log/var/log/nginx/host.access.logmain;location/{root/usr/share/nginx/html;indexindex.htmlindex.htm;}#error_page404/404.html;#r

python - Celeryd 忽略/etc/default/celeryd 中的 BROKER_URL

总结我通过celeryd(asperinstructions)将Celery作为守护进程运行在配置文件/etc/default/celerydBROKER_URL="redis://localhost:6379/0"中指定redis作为broker工作日志文件表明BROKER_URL被忽略,因为它仍在尝试连接到默认代理。ERROR/MainProcess]consumer:Cannotconnecttoamqp://guest:**@localhost:5672//:Erroropeningsocket:asocketerroroccurred.问题:除了在线说明中提供的基本模板之外,