這裏就是我想要做的事:檢查是否存在成員使用enable_if
template <typename T> struct Model
{
vector<T> vertices ;
#if T has a .normal member
void transform(Matrix m)
{
each vertex in vertices
{
vertex.pos = m * vertex.pos ;
vertex.normal = m * vertex.normal ;
}
}
#endif
#if T has NO .normal member
void transform(Matrix m)
{
each vertex in vertices
{
vertex.pos = m * vertex.pos ;
}
}
#endif
} ;
我見過examples使用enable_if
的,但我不明白如何應用enable_if
這個問題,或者如果它甚至可以應用。
'enable_if'不用於檢查成員是否存在,而是用於刪除重載。 – Pubby
我不能用它來做類似的事情(上面編輯中的建議)嗎? – bobobobo
不,你想要一個不存在的'static if'。你想要的是完全可能的,它不會使用那樣的語法。 – Pubby