g ++:未定義の `A :: sc 'への参照、なぜですか?しかし、ステートメントa = scはOKです。テンプレートのため ?未定義の参照先、理由
#include <iostream>
template<typename T>
inline const T &min(const T &left, const T &right)
{
return (left < right ? left : right);
}
class A
{
public:
static const size_t sc = 0;
A()
{
size_t tmp = 0;
size_t a = sc;
size_t b = min(sc, tmp);
}
};
int main()
{
A a;
return 0;
}
「sc」は「min」への参照によって渡されるためだと思います。一度リファレンスを取得すると、もうコンパイル時定数にすることはできません。 –