本文档意在记录工作中使用c++编译器(vc++、g++、clang++等)遇到的编译问题,虽然最终迂回解决,但不知其所以然,遂记录文档以便后面有时间思其所以然。
1. 禁用拷贝构造函数,非explicit单参构造函数,无法使用=显式初始化
1. 编译环境
$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2. 代码举例
class A
{
public:
A(const A&) = delete;
A(int) {}
};
int main()
{
A a = 1;
}
3. 编译错误
x.cc: In function ‘int main()’:
x.cc:10:11: error: use of deleted function ‘A::A(const A&)’
A a = 1;
^
x.cc:4:5: error: declared here
A(const A&) = delete;
4. 解决记录
- 20190427 未解决