KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm building some input checker that needs to have specific functions for integer and/or double (for example 'isPrime' should only be available for integers). If I'm using enable_if as a parameter it's working perfectly : template <class T> class check { public: template< class U = T> inline static U readVal(typename std::enable_if<std::is_same<U, int>::value >::type* = 0) { return BuffCheck.getInt(); } template< class U = T> inline static U readVal(typename std::enable_if<std::is_same<U, double>::value >::type* = 0) { return BuffCheck.getDouble(); } }; but if I'm using it as a template paramater (as demonstrated on http://en.cppreference.com/w/cpp/types/enable_if ) template <class T> class check { public: template< class U = T, class = typename std::enable_if<std::is_same<U, int>::value>::type > inline static U readVal() { return BuffCheck.getInt(); } template< class U = T, class = typename std::enable_if<std::is_same<U, double>::value>::type > inline static U readVal() { return BuffCheck.getDouble(); } }; then I have the following error : error: ‘template<class T> template<class U, class> static U check::readVal()’ cannot be overloaded error: with ‘template<class T> template<class U, class> static U check::readVal()’ I can't figure out what is wrong in the second version.
Tags (comma-separated)
Save Edits
Cancel