ฉันต้องการทำสิ่งนี้:
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 ++ 17 ไม่ใช่ C ++ 11
—
zupazt3
std::string
ประเภท