C++核心準則T.62:將非依賴類模板成員放入非模板基類中

T.62: Place non-dependent class template members in a non-templated base class
T.62:將非依賴類模板成員放入非模板基類中
Reason(原因)
Allow the base class members to be used without specifying template arguments and without template instantiation.
允許在不定義模板參數和不例示模板的情況下使用基類成員。
Example(示例)
template
class Foo {
public:
enum { v1, v2 };
// ...
};
???
struct Foo_base {
enum { v1, v2 };
// ...
};
template
class Foo : public Foo_base {
public:
// ...
};Note(注意)
A more general version of this rule would be "If a class template member depends on only N template parameters out of M, place it in a base class with only N parameters." For N == 1, we have a choice of a base class of a class in the surrounding scope as in?T.61.
??? What about constants? class statics?
本規(guī)則的更普遍版是:如果模板類成員只依賴于M以外的N個模板參數,將其放入只包含N個參數的基類中。對于N==1的情況,我們可以選擇外圍作用域的某個類的基類,就像T.61那樣。
???常量該如何處理?靜態(tài)成員呢?
Enforcement(實施建議)
Flag ???
標記 ???
原文鏈接
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#t62-place-non-dependent-class-template-members-in-a-non-templated-base-class
新書介紹
《實戰(zhàn)Python設計模式》是作者最近出版的新書,拜托多多關注!

本書利用Python 的標準GUI 工具包tkinter,通過可執(zhí)行的示例對23 個設計模式逐個進行說明。這樣一方面可以使讀者了解真實的軟件開發(fā)工作中每個設計模式的運用場景和想要解決的問題;另一方面通過對這些問題的解決過程進行說明,讓讀者明白在編寫代碼時如何判斷使用設計模式的利弊,并合理運用設計模式。
對設計模式感興趣而且希望隨學隨用的讀者通過本書可以快速跨越從理解到運用的門檻;希望學習Python GUI 編程的讀者可以將本書中的示例作為設計和開發(fā)的參考;使用Python 語言進行圖像分析、數據處理工作的讀者可以直接以本書中的示例為基礎,迅速構建自己的系統(tǒng)架構。
覺得本文有幫助?請分享給更多人。
關注微信公眾號【面向對象思考】輕松學習每一天!
面向對象開發(fā),面向對象思考!
