好吧,這是我第一次進入模板,這可能是幾個非常愚蠢,簡單的問題中的第一個。強制編譯錯誤的未專門化模板實例化
考慮:
template <class T>
void sendit(char *buffer, unsigned len)
{
// force compile error
}
void sendit<first_valid>(char *buffer, unsigned len)
{
// this is OK
}
void sendit<second_valid>(char *buffer, unsigned len)
{
// this is OK
}
基本上,這個想法是,我有一組可以依法由sendit()方法來操作的「東西」,我會專門爲這些東西的模板。如果用戶試圖調用sendit(),(在技術上,sendit()),我想在他的臉上拋出一個編譯錯誤。
這是可行的嗎?如果是這樣,怎麼樣?
這是一個合理的方法嗎?
這只是autodidactic ?因爲除非你只是想學習模板可以做什麼,否則我沒有理由爲此使用模板。 – Beta
這只是我想要做的一部分。我有一套十幾件物品和四套手續。一個可以應用於所有這些,另外三個適用於固定子集。我還計劃在專業領域隱藏其他數據。最終目標是使我的合理設置儘可能簡單和防白癡。 –
可能重複的[如何防止非專業模板實例?](http://stackoverflow.com/questions/7064039/how-to-prevent-non-specialized-template-instantiation) – mako