21
A
回答
21
一個static constexpr
會隱也inline
,否則就需要將其標記爲inline
template<typename T>
struct SomeClass {
inline static T test; // Now inline
};
struct SomeClass2 {
static constexpr int test = 9; // inline
};
CFR。從n4606 [depr.static_constexpr]
對於與現有C++國際標準的相容性,一個constexpr靜態數據成員可以被冗餘地重新聲明類的外部與沒有初始化。此用法已棄用。
實施例:
struct A { static constexpr int n = 5; // definition (declaration in C++ 2014) }; const int A::n; // redundant declaration (definition in C++ 2014)
和[dcl.constexpr]
(巴里打我給它)
函數或靜態數據成員與constexpr說明符聲明是隱式地內聯函數或變量(7.1 0.6)。
11
從[dcl.constexpr]:
的函數或與該
constexpr
說明符聲明靜態數據成員可隱式的內聯函數或變量(7.1.6)。
對於類模板的靜態(非constexpr
)數據成員沒有這樣的隱式inline
。然而,在C++ 17,我們現在可以標記變量本身作爲inline
,[dcl.inline]:
與
inline
說明符的變量聲明聲明內嵌變量。
相關問題
- 1. h文件C++模板庫中的靜態變量。可以嗎?
- 2. 模板靜態變量
- 3. 默認值爲靜態布爾變量
- 4. Java - 靜態初始化與靜態變量的默認值
- 5. 在模板中使用靜態變量
- 6. C++中類模板的模板參數推導17:我做錯了嗎?
- 7. 我怎樣才能默認初始化靜態類模板變量
- 8. EmberJS傳遞變量默認模板
- 9. 靜態C++變量,沒有默認構造函數,失去了值
- 10. 模板函數中的C++靜態變量初始化
- 11. 如何在模板中設置變量默認值?
- 12. C++中的靜態變量
- 13. C中的靜態變量
- 14. 函數內的靜態變量vs C++中的靜態類變量
- 15. C#靜態和常量變量內存
- 16. 如何在C++類模板中使用靜態變量
- 17. 如何重置C中函數內的靜態變量的值?
- 18. C:全局,靜態變量了解
- 19. 靜態變量爲了
- 20. 是默認靜態內部類的成員靜態在java中
- 21. C++ 17可變模板摺疊
- 22. 模板類的靜態變量的初始化,C++
- 23. C++ 17類模板演繹常量
- 24. C++模板默認構造
- 25. 導出/定義靜態模板專門的成員變量C++
- 26. 使用靜態成員變量的奇數C++模板行爲
- 27. C++靜態變量
- 28. C++靜態變量
- 29. C++ - 靜態變量
- 30. 用作模板的類中的靜態常量變量