我已经从CVS存储库检出了一个文件并进行了更改.
cvs up命令说文件已被修改M.
我需要删除我的更改.cvs命令可以为我做什么?
struct A
{
A();
A(const A&);
A& operator =(const A&);
A(A&&) = delete;
A& operator =(A&&) = delete;
};
struct B
{
B();
B(const B&);
B& operator =(const B&);
};
int main()
{
A a;
a = A(); // error C2280
B b;
b = B(); // OK
}
Run Code Online (Sandbox Code Playgroud)
我的编译器是VC++ 2013 RC.
错误C2280:'A&A :: operator =(A &&)':尝试引用已删除的函数
我只是想知道为什么编译器A& operator =(const A&);在A& operator =(A&&)删除时不会尝试?
这种行为是由C++标准定义的吗?
我正在读这个问题:
并且,特别是C++ 11的答案,我理解评估的"排序"的想法.但是 - 写作时是否有足够的顺序:
f(x++), g(x++); ?
也就是说,我保证f()获得原始值x并g()获得一次递增x?
挑剔的注意事项:
operator++()已定义的行为(即使我们已经重写它),这样做f()和g(),没有异常将被抛出,等-这个问题是不是有关.operator,()没有超载.GCC 4.x不接受--std=c++14C++ 14代码的切换 - 它需要--std=c++1y代替.以后的版本需要(--std=c++1z但可能)--std=c++17还没有设置(2016年写这个).也许C++ 11也存在类似的问题.
CMake是否有一些设施(可能作为模块)根据GCC版本传递正确的开关?
我想执行a printf()来显示上次编译当前正在执行的代码的时间.C/C++是否提供了一个宏,可以让您在编译期间解析为时间戳?
我正在阅读B. Stroustrup的关于C++ 17的思考合同,并协助一个小小的演讲,谈论他们,但我不确定我是否真的理解它们.
所以我有一些问题,如果有可能用一些例子来说明它们:
合同是否是经典的更好替代品,assert()它们应该一起使用吗?对于软件开发人员来说,简单的合同是什么?
合同会对我们处理异常的方式产生影响吗?如果是,我们应该如何使用例外和合同?
使用合同是否意味着执行时的开销?我们是否允许在发布代码上停用它们?
从提案N4415编辑:
可以编写Vector类的索引操作符的前置条件合约:
T& operator[](size_t i) [[expects: i < size()]];类似地,ArrayView类的构造函数上的条件后约定可表示为:
ArrayView(const vector<T>& v) [[ensures: data() == v.data()]];
在一个已编译的程序中(假设是C或C++,但我想这个问题可以扩展到任何带有调用堆栈的非VM语言) - 通常当你溢出堆栈时,会出现分段错误:
堆栈溢出是[a]原因,分段错误就是结果.
但这总是如此吗?堆栈溢出是否会导致其他类型的程序/操作系统行为?
我也问过非Linux,非Windows操作系统和非X86硬件.(当然,如果你没有硬件内存保护或操作系统支持(例如MS-DOS)那么就没有分段错误;我问的是你可能会遇到分段错误的情况但是还会发生其他事情).
注意:假设以外的堆栈溢出,该方案是有效的,而不是试图访问数组超出边界,取消引用无效指针等
我使用最近的Ganymede版本的Eclipse,特别是Java EE和Web开发人员的发行版.我已经安装了一些额外的插件(例如Subclipse,Spring,FindBugs)并删除了所有的Mylyn插件.
我没有在Eclipse中做任何特别重要的事情,例如启动应用服务器或连接到数据库,但由于某种原因,经过几个小时的使用后,我发现Eclipse使用的是接近500MB的内存.
有谁知道Eclipse为什么会使用这么多内存(漏洞?),更重要的是,如果我能做些什么来改进这个?
如果您使用现有的C代码库并使用C++编译器进行编译,那么您可能会遇到什么样的问题?例如,我认为将一个整数分配给具有枚举类型的值将在C++中失败,而在C中它是合法的(如果有点讨厌).
如果我没有包装我的所有C文件extern C { ... },我是否会在最不期望的地方获得名称错误?有什么理由我真的不应该这样做吗?
作为背景,我们有一个用C编写的非常大的代码库.几年来,我们一直在跳过箍来做一些自然而然的事情来通过C++(例如homebrewe继承).我们希望开始转向C++,但是要逐步进行; 获得我们类似CORBA的框架来支持它,并在我们继续使用C++提供的更自然的方法时重构模块.
c c++ migration compiler-construction language-interoperability
我有2个非常相似的内核函数,在某种意义上代码几乎相同,但略有不同.目前我有2个选择:
if语句对我的算法性能有多大影响?
我知道没有分支,因为所有块中的所有线程都将输入if或else.
如果内核函数被多次调用,那么单个if语句会降低我的性能吗?