c++ - is_foo struct inside a templated class -


i have foo struct templated on size_t. want write is_foo struct such is_foo<t>::value true if , if t looks foo<n> n. here minimal example of issue:

template<typename t> class bar { public:     template<size_t n> struct foo{};     template<typename> struct is_foo : std::false_type{};     template<size_t n> struct is_foo<foo<n>> : std::true_type{};     template<typename = std::enable_if<is_foo<foo<0>>::value>::type>     bar(int x) {} }; 

my problem bar<double> b(5); in main fails compile, meaning is_foo<foo<0>>::value turned out false. however, if remove template<typename t> declaration of class bar, bar b(5) compile fine. how can make is_foo behave way want to?

my problem bar<double> b(5); in main fails compile, meaning is_foo<foo<0>>::value turned out false

not really.

+ g++ -std=c++14 -o2 -wall -pedantic -pthread main.cpp main.cpp:10:25: error: need 'typename' before 'std::enable_if<bar<t>::is_foo<bar<t>::foo<0ul> >::value>::type' because 'std::enable_if<bar<t>::is_foo<bar<t>::foo<0ul> >::value>' dependent scope      template<typename = std::enable_if<is_foo<foo<0>>::value>::type>                          ^ [snip] + clang++ -std=c++14 -o2 -wall -pedantic -pthread main.cpp main.cpp:10:25: error: missing 'typename' prior dependent type name 'std::enable_if<is_foo<foo<0> >::value>::type'     template<typename = std::enable_if<is_foo<foo<0>>::value>::type>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         typename  

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -