我一直在寻找这个问题的答案,但我仍然不完全确定它的答案.我发现的关于删除分支的大多数信息只不过是手册所说的副本(例如,在SO上).我认为一个核心问题是我不确切知道Git中的一个分支是什么(即使有许多文章声称要解释这一点).我找到的唯一有用的信息是在这个SO答案和使用git安装的文档.
我的问题:
当我运行git branch -d BRANCH_NAME,
另外还有相同的子问题git branch -D BRANCH_NAME.
我目前的理解:
首先我对分支的看法:取决于上下文,术语分支指的是指向某个提交的指针(严格称为分支头),或者指向那个提交的提交列表
我认为发生了什么(但我很不确定),因为git branch -d BRANCH_NAME:
我认为发生了什么,因为git branch -D BRANCH_NAME:
下面的代码给出了错误:
use of deleted function ‘constexpr B::B(const B&)’
Run Code Online (Sandbox Code Playgroud)
现在,我知道这是因为通过指定移动构造函数(有意)隐式删除了复制构造函数,并且复制向量会导致对(已删除)复制构造函数的调用.我想我也理解为什么使用向量的复制构造函数和赋值运算符.我显然想要使用移动构造函数和赋值运算符:移动对象,因此也移动它包含的向量.那么,如何让我的移动构造函数/赋值运算符使用向量的移动构造函数/赋值运算符?
这是代码:
#include <vector>
class B {
private:
/* something I don't want to copy */
public:
B() {};
B(B&& orig) {/* move contents */};
B& operator=(B&& rhs) {
/* move contents */
return *this;
};
};
class A {
private:
vector<B> vec;
public:
A() : vec() {};
A(A&& orig) : vec(orig.vec) {};
A& operator=(A&& rhs) {
vec = rhs.vec;
return *this;
};
};
Run Code Online (Sandbox Code Playgroud) 我的程序编译得很好,但Netbeans告诉我"无法解析标识符to_string".
我在" Netbeans 7.2节目"中尝试了所有内容.无法解析标识符",虽然构建成功 " 但我在代码辅助选项中将"C++标准"设置为"C++ 11".
到目前为止,这是解决此问题的唯一功能.然而它也是我使用的第一个C++ 11特性,这使我相信它与Netbeans有关,而不是理解我正在使用C++ 11,尽管我在代码辅助菜单中明确指定了它.
最小的例子:
#include <string>
int main() {
std::to_string(1);
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用时出现同样的问题 nullptr
编辑2:我突然意识到提到我不使用生成的Makefile,但是SCons可能很重要.