[Bug c++/68926] New: decltype and sfinae to check for template instance availability
grygoriy.fuchedzhy at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Dec 15 23:59:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68926
Bug ID: 68926
Summary: decltype and sfinae to check for template instance
availability
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: grygoriy.fuchedzhy at gmail dot com
Target Milestone: ---
Hi,
here is minimal example of code which I believe valid, compiles using
clang-3.5.2, but fails to compile using gcc-4.9.3 gcc-5.2.0 gcc-5.3.0
returning:
no type named ‘type’ in ‘struct std::enable_if<false, void>’
#include <type_traits>
template<typename T>
typename std::enable_if<std::is_same<int, T>::value>::type
func();
template<typename T, typename = decltype(func<T>)>
std::true_type test(T);
std::false_type test(...);
int main()
{
decltype(test(0))::value; // ok
decltype(test(0.f))::value; // error
}
More information about the Gcc-bugs
mailing list