Tôi muốn làm điều này:
template <typename T>
struct S
{
...
static double something_relevant = 1.5;
};
nhưng tôi không thể something_relevant
là loại không thể thiếu. Nó không phụ thuộc vào T
, nhưng mã hiện tại phụ thuộc vào nó là thành viên tĩnh của S
.
Vì S là mẫu, tôi không thể đặt định nghĩa bên trong tệp được biên dịch. Làm thế nào để tôi giải quyết vấn đề này?
Vì c ++ 11, từ khóa nội tuyến đã thay đổi để các biến tĩnh có thể được khởi tạo tại điểm khai báo. Vì vậy, khai báo cho điều này sẽ trông giống như "nội tuyến tĩnh đôi gì đó_relevant = 1,5;"
@ user8991265 Tôi tin rằng các biến nội tuyến có sẵn kể từ C ++ 17, không phải C ++ 11.
—
zupazt3
std::string
loại