Мое понимание состоит в том, что С++ позволяет определять константные члены-члены внутри класса, если он является целым типом.
Почему тогда следующий код дает мне ошибку компоновщика?
#include <algorithm>
#include <iostream>
class test
{
public:
static const int N = 10;
};
int main()
{
std::cout << test::N << "\n";
std::min(9, test::N);
}
Ошибка, которую я получаю:
test.cpp:(.text+0x130): undefined reference to `test::N'
collect2: ld returned 1 exit status
Интересно, что если я прокомментирую вызов std:: min, код компилируется и ссылки просто прекрасны (хотя test:: N также ссылается на предыдущую строку).
Любая идея относительно того, что происходит?
Мой компилятор - gcc 4.4 в Linux.