2017-02-01 139 views
0

是否有一個ready函數可以將模板參數作爲參數,並確定它是用戶定義的類型(類或結構)還是內置數據類型(int,float,char ... )?評估模板參數

+0

退房[''](http://en.cppreference.com/w/cpp/header/type_traits) – NathanOliver

回答

0

您正在查找std::is_arithmetic模板,該模板確定模板參數是整數還是浮點類型。

通過消除過程,唯一剩下的選項是:指針或引用,類和void。也可能是某種類型的枚舉。從你的問題中你不清楚你想如何分類這些,但是,如果有必要,在std::is_arithmetic的頂部添加一些額外的檢查應該可以進一步消除給定類型的歧義。

+0

注意'std :: is_fundamental'另外包含'void'和'std :: nullptr_t'到算術類型。最重要的是,有數組,指針和成員指針以及引用。從'is_class'和'is_union'開始並且檢查這些是否失敗,並根據OP所要的確切地刪除cv-qualifiers和指針和/或引用可能會更容易。 – chris