Saya ingin melakukan ini:
template <typename T>
struct S
{
...
static double something_relevant = 1.5;
};
tapi saya tidak bisa karena something_relevant
itu bukan tipe integral. Itu tidak bergantung pada T
, tetapi kode yang ada tergantung padanya menjadi anggota statis S
.
Karena S adalah templat, saya tidak bisa memasukkan definisi di dalam file yang dikompilasi. Bagaimana saya mengatasi masalah ini?
Sejak c ++ 11 inline kata kunci telah berubah sehingga variabel statis dapat diinisialisasi pada titik deklarasi. Jadi deklarasi untuk ini akan terlihat seperti "inline static double something_relevant = 1.5;"
@ user8991265 Saya percaya variabel inline tersedia sejak C ++ 17, bukan C ++ 11.
—
zupazt3
std::string
mengetik