草庐IT

working-copy

全部标签

c++ - gvim :make command does not work

我在Unix环境下,使用C++工作。我从一个目录中打开gvim,该目录中存在一个名为“Makefile”的生成文件。当我尝试在vim中使用":make"时,我得到:外壳返回2(1of1):make:***未指定目标且未找到makefile。停止。 最佳答案 你有autochdir吗启用?那可能会更改到另一个目录。检查:pwd以查看当前目录是否是您所期望的。尝试运行:!ls以查看Makefile是否存在。 关于c++-gvim:makecommanddoesnotwork,我们在Stack

c++ - 使用 std::copy 复制所有元素的地址

我正在尝试获取给定集合的所有元素的地址并将它们复制到std::set。基本上,而不是std::sets1;std::copy(first1,last1,std::inserter(s1,s1.begin()));我想插入他们的地址。像这样的东西:std::set>s1;std::copy(reference_iterator(first1),reference_iterator(last1),std::inserter(s1,s1.begin()));在这里,reference_iterator将是一个迭代器,返回其元素的地址,而不是元素,这与boostindirect_iterato

c++ - 在 copy-and-swap 习语中实现交换

正在关注Whatisthecopyandswapidiom和Howtoprovideaswapfunctionformyclass,我尝试像后者接受的答案选项2那样实现交换函数(具有调用成员函数的自由函数),而不是前一个链接中的直接友好自由函数。但是下面的不编译#include//Uncommentingthefollowingtwolineswon'tchangethestateofaffairs//classBar;//voidswap(Bar&,Bar&);classBar{public:Bar(unsignedintbottles=0):bottles(bottles){enf

c++ - 在 Constructor works 中将临时变量传递给引用 arg。但不是一般的功能。为什么?

这个问题在这里已经有了答案:Defaultconstructorwithemptybrackets(9个回答)关闭7年前。考虑以下代码。在这里,即使构造函数是A(B&b),Aa(B())也会编译;但是print(B())不起作用。但是print也被声明为print(B&b);为什么会出现这种不一致?#includeusingnamespacestd;classB{public:charb;};classA{public:Bb;A(B&b);A(){}};A::A(B&b){this->b=b;}voidprint(B&b){}intmain(){print(B());Aa(B());}

C++ 标准 : return by copy to initialize a reference without RVO: is there any copy?

让我们考虑下一个示例:structbig_type{};//Returnbycopyautofactory(){returnbig_type{};}voidany_scope_or_function(){big_type&&lifetime_extended=factory();}假设RVO被禁止或根本不以任何方式存在,big_type()是否会或可以被复制?还是将引用直接绑定(bind)到return语句中构造的临时对象?我想确保big_type析构函数仅在any_scope_or_function结束时被调用一次。我使用C++14,以防某些行为在标准版本之间发生变化。

C++11 基于范围的循环 : How does it really work

我知道这个循环是如何工作的,以及我如何在实际问题中使用它。但我想知道幕后发生了什么。我认为这个循环类似于常规的for循环,例如for(inti=0;i变量i只初始化一次,所以我认为这对于基于范围的循环也是一样的。但是如果我写这段代码:for(constintx:vec){cout编译器允许我这样做,但我不明白这是怎么可能的。如果变量x是const,为什么在每次迭代中x值都不同? 最佳答案 循环的每次迭代都会创建一个局部变量x并将其初始化为vec的下一个元素。当循环迭代结束时,x超出范围。单个x永远不会被修改。参见thislink为了

c++ - 为什么这里调用的是 Copy Constructor 而不是普通的 Constructor 和重载的赋值运算符?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:IsthereadifferenceinC++betweencopyinitializationanddirectinitialization?CopyconstructorsandAssignmentOperators我有一个C类,我在其中重载了Normal、复制构造函数和赋值运算符以打印被调用内容的踪迹。我写了以下代码来测试什么时候被调用?Cc1;-->NormalConstuctor..//understoodFineCc2;c2=c1;-->Normalconstructor+assignmentop

c++ - copy-and-swap 技术在赋值运算符函数中使用复制构造函数

我正在阅读“EffectiveC++byScottMeyers”,其中第11项建议在我的赋值运算符中使用“copy-and-swap”技术:Widget&Widget::operator=(constWidget&rhs){Widgettemp(rhs);//Copyconstructorswap(temp);//Swapwith*thisreturn*this;}但是在Item12中是这样写的:Itmakesnosensetohavecopyassignmentoperatorcallthecopyconstructor.我认为第11项和第12项是矛盾的。我理解错了吗?

c# - 无法在我的 WPF 应用程序中使用 Array.Copy()

我是一名C++开发人员,最近开始从事WPF方面的工作。好吧,我在我的应用程序中使用Array.Copy(),看起来我无法完全获得所需的结果。我在我的C++应用程序中做了如下操作:staticconstsignedcharversion[40]={'A','U','D','I','E','N','C','E',//name0,0,0,0,0,0,0,0,//reserved,firmwaresize0,0,0,0,0,0,0,0,//boardnumber0,0,0,0,0,0,0,0,//variant,version,serial0,0,0,0,0,0,0,0//datecode,r

c++ - noexcept 运算符和 enable_if_t : do they work together?

考虑以下类:structS{templatestd::enable_if_t::value>f()noexcept{}templatestd::enable_if_t::value>g()noexcept{}};正如预期的那样,编译:s.f();这个不是:s.g();令我困惑的是,下面的main是用GCC(6.2)编译的,而不是用clang(3.9)编译的:intmain(){static_assert(noexcept(&S::f),"!");static_assert(noexcept(&S::g),"!");}我会说第二个断言失败是因为特化无效。两个编译器不同意这一点。哪个是正确