2
C++標準是否允許在模板聲明中設置屬性?例如:可以將屬性應用於模板嗎?
[[attr1]] template <typename T [[attr2]] > [[attr3]]
class [[attr4]] C {};
我相信attr4
會被認爲是模板實例(即,那將是T<int>
和T<char>
的屬性,例如)有效的屬性。
然而,attr1
或attr3
被編譯器認爲是有效的(即使它會被忽略)?
attr2
也會有效嗎?我想不是,但我不確定。問題是如果它將一個屬性「添加」到用於實例化的給定類型中,但是IIRC當前的模板參數忽略了所有屬性。
我對attr1
和/或attr3
的興趣是用於自定義測試DSL,其中模板上的給定屬性會自動強制使用給定的一組類型實例化類。