在GCC 4.8.4上使用std :: min时对静态const类成员的未定义引用

时间:2016-06-23 07:40:42

标签: c++ c++11 gcc

当我尝试编译以下代码时(使用 g ++ 4.8.4 -std = c ++ 11 ):

#include <algorithm>

class A
{
    public:
        static const unsigned a = 1;
        //static const unsigned a;
};

// const unsigned A::a = 1;

int main()
{
    unsigned b = 2;
    std::min(/*(unsigned)*/A::a, b);
}

我有链接错误:

  

A::a

的未定义引用

如果我在 A类之外定义A::a或在执行A::a时将std::min转换为无符号,则问题不存在。

是GCC的错误吗?如果不是这种行为的根本原因是什么?

0 个答案:

没有答案