草庐IT

复制集

全部标签

G++ 4.5 中 std::complex 的 C++11 复制赋值 - 与 'operator+' 不匹配

下面的代码无法使用-std=c++0x开关在g++4.5.0版中编译。我收到以下错误消息:error:nomatchfor'operator+'in'std::pow[with_Tp=float,_Up=int,typename__gnu_cxx::__promote_2::__type=double](((conststd::complex&)((conststd::complex*)(&x))),((constint&)((constint*)(&2))))+y'我相信这与提到的可分配要求有关here.我应该为complex定义自己的复制赋值运算符吗?如果是,怎么办?#includ

c++ - 我如何允许移动构造并禁止类的赋值和复制构造

有没有办法允许移动构造函数并禁止复制构造和赋值。我可以想到几个具有文件指针和缓冲区指针(资源句柄等)的类,它们将受益于复制构造和分配。我正在使用VC2010和GCC4.5.2。我知道我必须在VC2010类header中声明空的私有(private)赋值和复制构造函数,据我所知,GCC允许在方法之后执行某种删除签名来执行相同的操作。如果有人有像这样的骨架类的好例子及其优点,我将不胜感激。提前致谢约翰这里是一个类的例子,我想允许移动但我也想阻止直接分配。复制构造函数和operator=private是不是同样的问题?classLoadLumScanner_v8002:publicILoad

c++ - std::function 复制构造函数是否要求模板类型参数类型是完整类型?

给定:#includeclassworld_building_gun;classtile_bounding_box;typedefstd::functionworldgen_function_t;voidfoo(){worldgen_function_tv;worldgen_function_tw(v);}这应该编译吗?我的编译器说:是:GCC/stdlibc++(在GCC和Clang中boost::function也是yes)否:Clang/libc++(http://libcxx.llvm.org/,Clang3.0,截至今日的libc++SVN)(如果“否”是正确答案,我将修复我

c++ - 使用 opencv 复制/混合不同大小的图像

我正在尝试混合两个图像。如果它们具有相同的大小,这很容易,但是如果其中一个图像较小或较大,则cv::addWeighted会失败。图片A(预计会更大)图B(预计会更小)我试图创建一个ROI-试图创建A大小的第三个图像并在其中复制B-我似乎做不对。请帮忙。doublealpha=0.7;//somethingintmin_x=(A.cols-B.cols)/2);intmin_y=(A.rows-B.rows)/2);intwidth,height;if(min_x甚至像cvSetImageROI这样的东西-可能有用,但我找不到c++等价物-可能有帮助-但我不知道如何使用它来保留图像内容

c++ - 复制构造函数和转换构造函数之间的混淆

由于我对这个问题(对于C++03)有疑问,所以我将其张贴在这里。我刚刚阅读了有关转换构造函数的内容,它指出"Tobeaconvertingconstructor,constructormusthavesingleargumentandbedeclaredwithoutkeywordexplicit."现在我的问题是,如果没有显式声明,复制构造函数是否可以称为转换构造函数?它有资格成为一个吗?我相信它不能被称为转换构造函数,因为它只接受相同类型的参数,导致没有转换。例如fooa;foob;a=100;//aConversionconstructorwouldbecalled(i.e)fo

c++ - 复制和移动构造函数之间的效率差异

C++11引入了右值引用的新概念。我在某处阅读它并发现以下内容:classBase{public:Base()//DefaultCtorBase(intt)//ParameterizedCtorBase(constBase&b)//CopyCtorBase(Base&&b)//MoveCtor};voidfoo(Baseb)//Function1{}voidfoo(Base&b)//Function2{}intmain(){Baseb(10);foo(b);--Line1(iknowofambiquitybutletsignoreforunderstandingpurpose)foo(

c++ - 如何递归复制文件和目录

使用C++,是否可以递归地将文件和目录从一个路径复制到另一个路径无需使用任何额外的库?并具有独立于平台的功能?考虑以下文件系统src/fileInRootsrc/sub_directory/src/sub_directory/fileInSubdir我要复制所有文件和目录或某些文件和目录从src到另一个目录target。我创建了一个新问题,因为我发现的问题是特定于平台的,不包括过滤:C++Copydirectoryrecursiveunderunix(unix)Copydirectorycontent(Linux)C/C++Copyfilewithautomaticrecursivef

c++ - 将私有(private)复制构造函数与公共(public)赋值运算符一起使用时出错

你们谁能解释一下为什么下面这段代码不能编译?#includeusingnamespacestd;classFoo{public:Foo(){cout我收到的错误:$g++-ocopy_ctor_assigncopy_ctor_assign.cc&&./copy_ctor_assigncopy_ctor_assign.cc:Infunction'intmain()':copy_ctor_assign.cc:10:error:'Foo::Foo(constFoo&)'isprivatecopy_ctor_assign.cc:17:error:withinthiscontext注意:当我删除

c++ - 未调用复制构造函数,但编译器提示没有

给定以下代码:#includeenumError{ERR_OK=0};structFilter:privateboost::noncopyable{Filter(){}virtual~Filter(){}virtualintfilter(int*data)const=0;};structSpecialFilter:publicFilter,privateboost::noncopyable{inlineSpecialFilter(unsignedintmin,unsignedintmax):min(min),max(max){}virtual~SpecialFilter(){}virt

c++ - 多重继承类的复制构造函数

考虑这段代码:#include#includeusingnamespacestd;classBase{char_type;public:Base(chartype):_type(type){}~Base(){coutv;Baseb('b');Childc;v.push_back(b);v.push_back(c);return0;}我系统的输出是:Basedestructor:bChilddestructorBasedestructor:cBasedestructor:bBasedestructor:bBasedestructor:c我的问题是:为什么Base(b类型)的析构函数被调用