この不可解なC ++(std :: minおよびstatic const int)

g ++が次のコードをコンパイルしない(またはリンクしない)ことが突然発見されました(MS VS 2008で動作します)



#include <algorithm>



struct Test

{

static const int a = 0, b = 1;

};



int main()

{

std::min(Test::a, Test::b);

return 0;

}




* This source code was highlighted with Source Code Highlighter .








の診断で

 Fail.cpp :(。Text + 0x15): `Test :: a 'への未定義の参照
 ...




クラス外の定数に値を割り当てた場合(const int Test :: a = 0)、すべてが機能します。



All Articles