This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/65790] compilation error : receive std::index_sequnece
- From: "redi at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 17 Apr 2015 08:09:06 +0000
- Subject: [Bug c++/65790] compilation error : receive std::index_sequnece
- Auto-submitted: auto-generated
- References: <bug-65790-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65790
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |rejects-valid
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-04-17
Ever confirmed|0 |1
Known to fail| |4.8.3, 4.9.2, 5.0, 6.0
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Confirmed, Clang and EDG accept this:
extern "C" int printf(const char* ...);
namespace std
{
typedef decltype(sizeof(0)) size_t;
template<typename _Tp, _Tp... _Idx>
struct integer_sequence
{
typedef _Tp value_type;
static constexpr size_t size() { return sizeof...(_Idx); }
};
template<size_t... _Idx>
using index_sequence = integer_sequence<size_t, _Idx...>;
}
void g(std::size_t a, std::size_t b, std::size_t c)
{
printf("%zu, %zu, %zu\n", a, b, c);
}
template <std::size_t... Seq>
void f(std::index_sequence<Seq...>)
{
g(Seq...);
}
int main()
{
f(std::index_sequence<0, 1, 2>());
}