小编Nor*_*rtM的帖子

错误C2582:'运营商='功能在'B'中不可用

以下代码为main()中的行"e = f"提供了编译错误(至少在使用MS VS 2008时):

错误C2582:'运营商='功能在'B'中不可用

class A {
public:
    A() { }
    static const double x;
};
const double A::x = 0.0;

class B {
public:
    B() : x(0.0) { }
    const double x;
};

int main( int argc, char *argv[] )
{
    A c,d;
    B e,f;

    c = d;
    e = f;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

应为两个类A和B生成默认赋值运算符!

在12.8.10中:"如果类定义没有显式声明一个复制赋值运算符,则会隐式声明一个."

c++ compiler-errors

5
推荐指数
1
解决办法
6669
查看次数

为什么 GCC --gc-sections 和 -ffunction-sections 不起作用?(cmake 构建)

我想知道为什么 GCC 编译器标志 -ffunction-sections 和链接器标志 --gc-sections 不消除不必要的响应。来自我最终可执行文件的未引用符号/函数代码。为什么它不像 GCC 文档中的预期和描述的那样工作?

可能我监督了一些意外的参考!?
检查已经使用这个非常好的方法: GCC --gc-sections 并在链接描述文件中使用 /DISCARD/查找符号依赖项。没有成功。没有提到我未使用的功能。

没有机会自动消除死代码!?为什么 ???

c c++ gcc cmake ld

2
推荐指数
1
解决办法
2342
查看次数

标签 统计

c++ ×2

c ×1

cmake ×1

compiler-errors ×1

gcc ×1

ld ×1