https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62255
--- Comment #2 from Conrad <conradsand.arma at gmail dot com> --- When the irrelevant template parameter is used (arma_template_test.ii), g++ thinks that "value" in the following code can't be determined at compile time: template<typename T> struct is_Col_fixed_only { typedef char yes[1]; typedef char no[2]; template<typename X> static yes& check(typename X::Col_fixed_type*); template<typename> static no& check(...); static const bool value = ( sizeof(check<T>(0)) == sizeof(yes) ); };