This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/70401] [c++1z on mingw]compile variadic template failed


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70401

--- Comment #6 from jyong at gcc dot gnu.org ---
I don't think this is mingw specific, I get the same error on Linux with
gcc-7.3.

g++ -std=c++1z variadic.cpp -o aa

variadic.cpp: In instantiation of ‘std::ostream& operator<<(std::ostream&,
const std::tuple<_Tps ...>&) [with T = {long unsigned int, long unsigned int,
const char*, long unsigned int, const char*, const char*, long unsigned int,
long unsigned int, const char*, const char*, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, long
unsigned int, const char*, long unsigned int, const char*}; std::ostream =
std::basic_ostream<char>]’:
variadic.cpp:134:54:   required from here
variadic.cpp:114:7: error: call of overloaded ‘apply(const
operator<<(std::ostream&, const std::tuple<_Tps ...>&) [with T = {long unsigned
int, long unsigned int, const char*, long unsigned int, const char*, const
char*, long unsigned int, long unsigned int, const char*, const char*, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, const
char*}; std::ostream = std::basic_ostream<char>]::<lambda(auto:1&& ...)>&,
const std::tuple<long unsigned int, long unsigned int, const char*, long
unsigned int, const char*, const char*, long unsigned int, long unsigned int,
const char*, const char*, long unsigned int, const char*, long unsigned int,
long unsigned int, const char*, long unsigned int, long unsigned int, const
char*, long unsigned int, const char*>&)’ is ambiguous
  apply(printer,toprint);
  ~~~~~^~~~~~~~~~~~~~~~~
variadic.cpp:106:6: note: candidate: auto apply(F&&, Tuple&&) [with F = const
operator<<(std::ostream&, const std::tuple<_Tps ...>&) [with T = {long unsigned
int, long unsigned int, const char*, long unsigned int, const char*, const
char*, long unsigned int, long unsigned int, const char*, const char*, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, const
char*}; std::ostream = std::basic_ostream<char>]::<lambda(auto:1&& ...)>&;
Tuple = const std::tuple<long unsigned int, long unsigned int, const char*,
long unsigned int, const char*, const char*, long unsigned int, long unsigned
int, const char*, const char*, long unsigned int, const char*, long unsigned
int, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*, long unsigned int, const char*>&]
 auto apply(F&& f, Tuple&& t) {
      ^~~~~
In file included from variadic.cpp:2:0:
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/tuple:1668:5: note:
candidate: constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn =
const operator<<(std::ostream&, const std::tuple<_Tps ...>&) [with T = {long
unsigned int, long unsigned int, const char*, long unsigned int, const char*,
const char*, long unsigned int, long unsigned int, const char*, const char*,
long unsigned int, const char*, long unsigned int, long unsigned int, const
char*, long unsigned int, long unsigned int, const char*, long unsigned int,
const char*}; std::ostream = std::basic_ostream<char>]::<lambda(auto:1&&
...)>&; _Tuple = const std::tuple<long unsigned int, long unsigned int, const
char*, long unsigned int, const char*, const char*, long unsigned int, long
unsigned int, const char*, const char*, long unsigned int, const char*, long
unsigned int, long unsigned int, const char*, long unsigned int, long unsigned
int, const char*, long unsigned int, const char*>&]
     apply(_Fn&& __f, _Tuple&& __t)
     ^~~~~
variadic.cpp: In instantiation of ‘std::ostream& operator<<(std::ostream&,
const std::tuple<_Tps ...>&) [with T = {long unsigned int, long unsigned int,
const char*, long unsigned int, const char*, const char*, long unsigned int,
long unsigned int, const char*, const char*, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, long
unsigned int, const char*, long unsigned int, const char*, const char*, long
unsigned int, long unsigned int, const char*, const char*, long unsigned int,
const char*, long unsigned int, long unsigned int, const char*, long unsigned
int, long unsigned int, const char*, long unsigned int, const char*, const
char*, long unsigned int, long unsigned int, const char*, const char*, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, const
char*, const char*, long unsigned int, long unsigned int, const char*, const
char*, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*, long unsigned int, long unsigned int, const char*}; std::ostream =
std::basic_ostream<char>]’:
variadic.cpp:135:53:   required from here
variadic.cpp:114:7: error: call of overloaded ‘apply(const
operator<<(std::ostream&, const std::tuple<_Tps ...>&) [with T = {long unsigned
int, long unsigned int, const char*, long unsigned int, const char*, const
char*, long unsigned int, long unsigned int, const char*, const char*, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, const
char*, const char*, long unsigned int, long unsigned int, const char*, const
char*, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*, long unsigned int, long unsigned int, const char*, long unsigned
int, const char*, const char*, long unsigned int, long unsigned int, const
char*, const char*, long unsigned int, const char*, long unsigned int, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, const char*, const char*, long unsigned int, long unsigned
int, const char*, const char*, long unsigned int, const char*, long unsigned
int, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*}; std::ostream = std::basic_ostream<char>]::<lambda(auto:1&&
...)>&, const std::tuple<long unsigned int, long unsigned int, const char*,
long unsigned int, const char*, const char*, long unsigned int, long unsigned
int, const char*, const char*, long unsigned int, const char*, long unsigned
int, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*, long unsigned int, const char*, const char*, long unsigned int,
long unsigned int, const char*, const char*, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, long
unsigned int, const char*, long unsigned int, const char*, const char*, long
unsigned int, long unsigned int, const char*, const char*, long unsigned int,
const char*, long unsigned int, long unsigned int, const char*, long unsigned
int, long unsigned int, const char*, long unsigned int, const char*, const
char*, long unsigned int, long unsigned int, const char*, const char*, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*>&)’ is ambiguous
  apply(printer,toprint);
  ~~~~~^~~~~~~~~~~~~~~~~
variadic.cpp:106:6: note: candidate: auto apply(F&&, Tuple&&) [with F = const
operator<<(std::ostream&, const std::tuple<_Tps ...>&) [with T = {long unsigned
int, long unsigned int, const char*, long unsigned int, const char*, const
char*, long unsigned int, long unsigned int, const char*, const char*, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, long unsigned int, const char*, long unsigned int, const
char*, const char*, long unsigned int, long unsigned int, const char*, const
char*, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*, long unsigned int, long unsigned int, const char*, long unsigned
int, const char*, const char*, long unsigned int, long unsigned int, const
char*, const char*, long unsigned int, const char*, long unsigned int, long
unsigned int, const char*, long unsigned int, long unsigned int, const char*,
long unsigned int, const char*, const char*, long unsigned int, long unsigned
int, const char*, const char*, long unsigned int, const char*, long unsigned
int, long unsigned int, const char*, long unsigned int, long unsigned int,
const char*}; std::ostream = std::basic_ostream<char>]::<lambda(auto:1&&
...)>&; Tuple = const std::tuple<long unsigned int, long unsigned int, const
char*, long unsigned int, const char*, const char*, long unsigned int, long
unsigned int, const char*, const char*, long unsigned int, const char*, long
unsigned int, long unsigned int, const char*, long unsigned int, long unsigned
int, const char*, long unsigned int, const char*, const char*, long unsigned
int, long unsigned int, const char*, const char*, long unsigned int, const
char*, long unsigned int, long unsigned int, const char*, long unsigned int,
long unsigned int, const char*, long unsigned int, const char*, const char*,
long unsigned int, long unsigned int, const char*, const char*, long unsigned
int, const char*, long unsigned int, long unsigned int, const char*, long
unsigned int, long unsigned int, const char*, long unsigned int, const char*,
const char*, long unsigned int, long unsigned int, const char*, const char*,
long unsigned int, const char*, long unsigned int, long unsigned int, const
char*, long unsigned int, long unsigned int, const char*>&]
 auto apply(F&& f, Tuple&& t) {
      ^~~~~
In file included from variadic.cpp:2:0:
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/tuple:1668:5: note:
candidate: constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn =
const operator<<(std::ostream&, const std::tuple<_Tps ...>&) [with T = {long
unsigned int, long unsigned int, const char*, long unsigned int, const char*,
const char*, long unsigned int, long unsigned int, const char*, const char*,
long unsigned int, const char*, long unsigned int, long unsigned int, const
char*, long unsigned int, long unsigned int, const char*, long unsigned int,
const char*, const char*, long unsigned int, long unsigned int, const char*,
const char*, long unsigned int, const char*, long unsigned int, long unsigned
int, const char*, long unsigned int, long unsigned int, const char*, long
unsigned int, const char*, const char*, long unsigned int, long unsigned int,
const char*, const char*, long unsigned int, const char*, long unsigned int,
long unsigned int, const char*, long unsigned int, long unsigned int, const
char*, long unsigned int, const char*, const char*, long unsigned int, long
unsigned int, const char*, const char*, long unsigned int, const char*, long
unsigned int, long unsigned int, const char*, long unsigned int, long unsigned
int, const char*}; std::ostream = std::basic_ostream<char>]::<lambda(auto:1&&
...)>&; _Tuple = const std::tuple<long unsigned int, long unsigned int, const
char*, long unsigned int, const char*, const char*, long unsigned int, long
unsigned int, const char*, const char*, long unsigned int, const char*, long
unsigned int, long unsigned int, const char*, long unsigned int, long unsigned
int, const char*, long unsigned int, const char*, const char*, long unsigned
int, long unsigned int, const char*, const char*, long unsigned int, const
char*, long unsigned int, long unsigned int, const char*, long unsigned int,
long unsigned int, const char*, long unsigned int, const char*, const char*,
long unsigned int, long unsigned int, const char*, const char*, long unsigned
int, const char*, long unsigned int, long unsigned int, const char*, long
unsigned int, long unsigned int, const char*, long unsigned int, const char*,
const char*, long unsigned int, long unsigned int, const char*, const char*,
long unsigned int, const char*, long unsigned int, long unsigned int, const
char*, long unsigned int, long unsigned int, const char*>&]
     apply(_Fn&& __f, _Tuple&& __t)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]