有什么方法可以实现指定的行为?如果有什么花招或可以使用traits或enable_if
完成,请告诉我。
template <typename T> struct Functional {
T operator()() const {
T a(5);
// I want this statement to be tranformed into
// plain 'return;' in case T = void
return a; // <---
}
};
int main() {
Functional<int> a;
a();
Functional<void> b;
b(); // <--- Compilation error here
}
最佳答案
只是专门针对虚空:
template <typename T> struct Functional {
T operator()() const {
T a(5);
return a;
}
};
template <> struct Functional<void> {
void operator()() const {
}
};
关于C++模板问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3245148/