私はこれをしたいと思います:
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タイプにも適用