私はこれをしたいと思います:
template <typename T>
struct S
{
...
static double something_relevant = 1.5;
};
しかし、私something_relevant
は整数型ではないのでできません。これはには依存しませんT
が、既存のコードはの静的メンバーであることに依存していS
ます。
Sはテンプレートなので、コンパイルされたファイル内に定義を置くことはできません。この問題を解決するにはどうすればよいですか?
c ++ 11以降、キーワードinlineが変更され、静的変数を宣言時に初期化できるようになりました。したがって、この宣言は「inline static double something_relevant = 1.5;」のようになります。
@ user8991265 C ++ 11以降ではなくC ++ 17以降でインライン変数を使用できると思います。
—
zupazt3
std::string
タイプにも適用