[Bug c++/71954] New: template partial specialization for constexpr error
liweifriends at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Jul 21 02:12:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71954
Bug ID: 71954
Summary: template partial specialization for constexpr error
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: liweifriends at gmail dot com
Target Milestone: ---
The code is as follows:
template <typename T> struct Container;
template <typename...T>
struct Str1
{
template <typename...T1>
struct Helper1
{
constexpr static bool value = true;
};
template <typename T2, typename...T3>
struct Helper1<Container<T2>, T3...>
{
constexpr static bool value = false;
};
static_assert(Helper1<T...>::value, "Check");
};
template <typename...T>
struct Str2
{
template <typename...T1>
static constexpr bool Helper2 = true;
// ERROR here:
template <typename T2, typename...T3>
static constexpr bool Helper2<Container<T2>, T3...> = false;
static_assert(Helper2<T...>, "Check");
};
When compile with --std=c++14, Str1 is OK but Str2 will cause an Error:
error: explicit template argument list not allowed
More information about the Gcc-bugs
mailing list