Author
anonymous
about 5 years ago
Language
C++
Compiler
gcc HEAD 10.0.1 20200229 (experimental)
Options
Warnings
Optimization
Verbose
Boost 1.72.0
C++2a(GNU)
no pedantic
Author
anonymous
about 5 years ago
$ g++ prog.cc -Wall -Wextra -O2 -march=native -v -I/opt/wandbox/boost-1.72.0/gcc-head/include -std=gnu++2a
Using built-in specs.
COLLECT_GCC=/opt/wandbox/gcc-head/bin/g++
COLLECT_LTO_WRAPPER=/opt/wandbox/gcc-head/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../source/configure --prefix=/opt/wandbox/gcc-head --enable-languages=c,c++ --disable-multilib --without-ppl --without-cloog-ppl --enable-checking=release --disable-nls --enable-lto LDFLAGS=-Wl,-rpath,/opt/wandbox/gcc-head/lib,-rpath,/opt/wandbox/gcc-head/lib64,-rpath,/opt/wandbox/gcc-head/lib32
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.0.1 20200229 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-o' 'prog.exe' '-I' '/opt/wandbox/boost-sml/include' '-I' '/opt/wandbox/boost-di/include' '-I' '/opt/wandbox/range-v3/include' '-I' '/opt/wandbox/nlohmann-json/include' '-I' '/opt/wandbox/cmcstl2/include' '-I' '/opt/wandbox/te/include' '-Wall' '-Wextra' '-O2' '-march=native' '-v' '-std=gnu++2a' '-I' '/opt/wandbox/boost-1.72.0/gcc-head/include' '-L/opt/wandbox/boost-1.72.0/gcc-head/lib' '-shared-libgcc'
/opt/wandbox/gcc-head/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/cc1plus -quiet -v -I /opt/wandbox/boost-sml/include -I /opt/wandbox/boost-di/include -I /opt/wandbox/range-v3/include -I /opt/wandbox/nlohmann-json/include -I /opt/wandbox/cmcstl2/include -I /opt/wandbox/te/include -I /opt/wandbox/boost-1.72.0/gcc-head/include -imultiarch x86_64-linux-gnu -D_GNU_SOURCE prog.cc -march=sandybridge -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-sgx -mno-bmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b -mno-waitpkg -mno-cldemote -mno-ptwrite -mno-avx512bf16 -mno-enqcmd -mno-avx512vp2intersect --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=sandybridge -quiet -dumpbase prog.cc -auxbase prog -O2 -Wall -Wextra -std=gnu++2a -version -o /tmp/cczxYwwS.s
GNU C++17 (GCC) version 10.0.1 20200229 (experimental) (x86_64-pc-linux-gnu)
compiled by GNU C version 10.0.1 20200229 (experimental), GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/opt/wandbox/gcc-head/lib/gcc/x86_64-pc-linux-gnu/10.0.1/../../../../x86_64-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/wandbox/boost-sml/include
/opt/wandbox/boost-di/include
/opt/wandbox/range-v3/include
/opt/wandbox/nlohmann-json/include
/opt/wandbox/cmcstl2/include
/opt/wandbox/te/include
/opt/wandbox/boost-1.72.0/gcc-head/include
/opt/wandbox/gcc-head/lib/gcc/x86_64-pc-linux-gnu/10.0.1/../../../../include/c++/10.0.1
/opt/wandbox/gcc-head/lib/gcc/x86_64-pc-linux-gnu/10.0.1/../../../../include/c++/10.0.1/x86_64-pc-linux-gnu
/opt/wandbox/gcc-head/lib/gcc/x86_64-pc-linux-gnu/10.0.1/../../../../include/c++/10.0.1/backward
/opt/wandbox/gcc-head/lib/gcc/x86_64-pc-linux-gnu/10.0.1/include
/opt/wandbox/gcc-head/include
/opt/wandbox/gcc-head/lib/gcc/x86_64-pc-linux-gnu/10.0.1/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++17 (GCC) version 10.0.1 20200229 (experimental) (x86_64-pc-linux-gnu)
compiled by GNU C version 10.0.1 20200229 (experimental), GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 1af50902123577608ff32d1ca7d8f798
prog.cc:24:11: error: explicit specialization in non-namespace scope 'struct args_union<T, TemplateType, Head, Tail ...>'
24 | template<> struct args_union_sub<> {
| ^
prog.cc:24:20: error: template parameters not deducible in partial specialization:
24 | template<> struct args_union_sub<> {
| ^~~~~~~~~~~~~~~~
prog.cc:24:20: note: 'T'
prog.cc:24:20: note: 'template<T ...<anonymous> > class TemplateType'
prog.cc:24:20: note: 'Head'
prog.cc:24:20: note: 'Tail'
prog.cc:36:11: error: explicit specialization in non-namespace scope 'struct args_union<T, TemplateType>'
36 | template<> struct args_union_sub<> {
| ^
prog.cc:36:20: error: template parameters not deducible in partial specialization:
36 | template<> struct args_union_sub<> {
| ^~~~~~~~~~~~~~~~
prog.cc:36:20: note: 'T'
prog.cc:36:20: note: 'template<T ...<anonymous> > class TemplateType'
prog.cc: In instantiation of 'struct args_union<int, args_union<int, args_union<int, args_union<int, Asub<int>::type, 0, 1, 4, 6>::args_union_sub<1, 2, 4, 5>::template_type, 1, 4, 6>::args_union_sub<2, 4, 5>::template_type, 4, 6>::args_union_sub<4, 5>::template_type, 6>::args_union_sub<5>':
prog.cc:17:9: recursively required from 'struct args_union<int, args_union<int, Asub<int>::type, 0, 1, 4, 6>::args_union_sub<1, 2, 4, 5>::template_type, 1, 4, 6>::args_union_sub<2, 4, 5>'
prog.cc:17:9: required from 'struct args_union<int, Asub<int>::type, 0, 1, 4, 6>::args_union_sub<1, 2, 4, 5>'
prog.cc:47:104: required from 'constexpr auto tmp_union(const A<T, Value1 ...>&, const A<T, Value2 ...>&) [with T = int; T ...Value1 = {0, 1, 4, 6}; T ...Value2 = {1, 2, 4, 5}]'
prog.cc:53:74: required from here
prog.cc:17:9: error: invalid use of incomplete type 'struct args_union<int, args_union<int, args_union<int, args_union<int, args_union<int, Asub<int>::type, 0, 1, 4, 6>::args_union_sub<1, 2, 4, 5>::template_type, 1, 4, 6>::args_union_sub<2, 4, 5>::template_type, 4, 6>::args_union_sub<4, 5>::template_type, 6>::args_union_sub<5>::template_type>::args_union_sub<>'
17 | using type = std::conditional_t<Head == Head2, // if (Head == Head2)
| ^~~~
prog.cc:31:24: note: declaration of 'struct args_union<int, args_union<int, args_union<int, args_union<int, args_union<int, Asub<int>::type, 0, 1, 4, 6>::args_union_sub<1, 2, 4, 5>::template_type, 1, 4, 6>::args_union_sub<2, 4, 5>::template_type, 4, 6>::args_union_sub<4, 5>::template_type, 6>::args_union_sub<5>::template_type>::args_union_sub<>'
31 | template<T...> struct args_union_sub;
| ^~~~~~~~~~~~~~
prog.cc: In function 'int main()':
prog.cc:53:41: error: template argument 1 is invalid
53 | std::cout << std::boolalpha << std::is_same_v<decltype(tmp_union(a, b)), A<int, 0, 1, 2, 4, 5, 6>> << std::endl;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Exit Code:
1