[英]C++ compile-time type comparsion
考慮函數foo
。
template <typename T>
void foo() {
do_something();
if (T == int) {
do_somehting_else();
}
}
換句話說,我想要它do_something()
然后,如果類型是int
, do_something_else()
當然if (T == int) {
將無法編譯。 仍然:有沒有辦法在C ++中比較編譯時的類型?
您可以使用
#include <type_traits>
// ...
template <typename T>
void foo() {
do_something();
if (std::is_same<T,int>::value) {
do_somehting_else();
}
}
您可以在此處了解有關類型特征的更多信息。
只需使用模板專業化。
template <typename T> void foo() { do_something(); }
template<> void foo<int>() { do_something(); do_something_else(); };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.