SFINAE + sizeof = detect if expression compiles

前端 未结 2 471
终归单人心
终归单人心 2020-12-08 23:10

I just found out how to check if operator<< is provided for a type.

template T& lvalue_of_type();
template

        
2条回答
  •  情歌与酒
    2020-12-08 23:18

    It is just a combination of two well-known tricks. SFINAE says 'substitution failure is not an error' - that's exactly what you did. Using sizeof to let the compiler substitute template arguments into an expression without actually executing it is also common.

    Sorry :-)

提交回复
热议问题