[Bug c++/88675] New: std::make_integer_sequence not working for enums
huili80 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Jan 3 14:08:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88675
Bug ID: 88675
Summary: std::make_integer_sequence not working for enums
Product: gcc
Version: 8.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: huili80 at gmail dot com
Target Milestone: ---
The following code doesn't compile with --std=c++17:
#include <utility>
enum Number
{
Zero,
One,
Two,
Three
};
int main()
{
std::make_integer_sequence<Number,Three> s;
}
The error read:
/usr/include/c++/8/utility: In substitution of 'template<class _Tp, _Tp _Num>
using make_integer_sequence = std::integer_sequence<_Tp,
__integer_pack(_Num)...> [with _Tp = Number; _Tp _Num = (Number)3]':
t.cpp:13:43: required from here
/usr/include/c++/8/utility:329:55: error: invalid conversion from 'sizetype' to
'Number' [-fpermissive]
= integer_sequence<_Tp, __integer_pack(_Num)...>;
^
/usr/include/c++/8/utility:329:55: error: invalid conversion from 'sizetype' to
'Number' [-fpermissive]
/usr/include/c++/8/utility:329:55: error: invalid conversion from 'sizetype' to
'Number' [-fpermissive]
I suspect that this would be an easy fix by changing
/usr/include/c++/8/utility:329 to
= integer_sequence<_Tp, _Tp(__integer_pack(_Num))...>;
More information about the Gcc-bugs
mailing list