この不可解な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)、すべてが機能します。

Source: https://habr.com/ru/post/J73623/


All Articles