Author
anonymous
over 3 years ago
Language
C++
Compiler
gcc HEAD 12.0.0 20210721 (experimental)
Options
Warnings
Boost 1.73.0
C++2b(GNU)
no pedantic
Author
anonymous
over 3 years ago
$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.73.0/gcc-head/include -std=gnu++2b
In file included from /opt/wandbox/gcc-head/include/c++/12.0.0/bits/move.h:57,
from /opt/wandbox/gcc-head/include/c++/12.0.0/bits/stl_pair.h:59,
from /opt/wandbox/gcc-head/include/c++/12.0.0/bits/stl_algobase.h:64,
from /opt/wandbox/gcc-head/include/c++/12.0.0/bits/char_traits.h:39,
from /opt/wandbox/gcc-head/include/c++/12.0.0/string:40,
from /opt/wandbox/gcc-head/include/c++/12.0.0/bits/locale_classes.h:40,
from /opt/wandbox/gcc-head/include/c++/12.0.0/bits/ios_base.h:41,
from /opt/wandbox/gcc-head/include/c++/12.0.0/iomanip:40,
from prog.cc:2:
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits: In instantiation of 'decltype (__declval<_Tp>(0)) std::declval() [with _Tp = Example; decltype (__declval<_Tp>(0)) = Example&&]':
prog.cc:43:57: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::outerHelper(std::tuple<_Args1 ...>, T) [with Ts = {Example, double}; T = std::tuple<int, double, float>; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:46:51: required from 'class CartesianProduct<std::tuple<Example, double>, std::tuple<int, double, float>, 0, 0>'
prog.cc:49:7: required by substitution of 'template<class T1, class T2> using CartesianProduct_t = typename CartesianProduct<T1, T2>::type [with T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>]'
prog.cc:56:84: required from here
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: error: static assertion failed: declval() must not be used!
2384 | static_assert(__declval_protector<_Tp>::__stop,
| ^~~~~~
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: note: 'std::__declval_protector<Example>::__stop' evaluates to false
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits: In instantiation of 'decltype (__declval<_Tp>(0)) std::declval() [with _Tp = std::tuple<int, double, float>; decltype (__declval<_Tp>(0)) = std::tuple<int, double, float>&&]':
prog.cc:43:76: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::outerHelper(std::tuple<_Args1 ...>, T) [with Ts = {Example, double}; T = std::tuple<int, double, float>; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:46:51: required from 'class CartesianProduct<std::tuple<Example, double>, std::tuple<int, double, float>, 0, 0>'
prog.cc:49:7: required by substitution of 'template<class T1, class T2> using CartesianProduct_t = typename CartesianProduct<T1, T2>::type [with T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>]'
prog.cc:56:84: required from here
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: error: static assertion failed: declval() must not be used!
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: note: 'std::__declval_protector<std::tuple<int, double, float> >::__stop' evaluates to false
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits: In instantiation of 'decltype (__declval<_Tp>(0)) std::declval() [with _Tp = int; decltype (__declval<_Tp>(0)) = int&&]':
prog.cc:37:81: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::innerHelper(T, std::tuple<_Args2 ...>) [with T = Example; Ts = {int, double, float}; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:43:40: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::outerHelper(std::tuple<_Args1 ...>, T) [with Ts = {Example, double}; T = std::tuple<int, double, float>; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:46:51: required from 'class CartesianProduct<std::tuple<Example, double>, std::tuple<int, double, float>, 0, 0>'
prog.cc:49:7: required by substitution of 'template<class T1, class T2> using CartesianProduct_t = typename CartesianProduct<T1, T2>::type [with T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>]'
prog.cc:56:84: required from here
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: error: static assertion failed: declval() must not be used!
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: note: 'std::__declval_protector<int>::__stop' evaluates to false
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits: In instantiation of 'decltype (__declval<_Tp>(0)) std::declval() [with _Tp = double; decltype (__declval<_Tp>(0)) = double&&]':
prog.cc:37:81: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::innerHelper(T, std::tuple<_Args2 ...>) [with T = Example; Ts = {int, double, float}; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:43:40: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::outerHelper(std::tuple<_Args1 ...>, T) [with Ts = {Example, double}; T = std::tuple<int, double, float>; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:46:51: required from 'class CartesianProduct<std::tuple<Example, double>, std::tuple<int, double, float>, 0, 0>'
prog.cc:49:7: required by substitution of 'template<class T1, class T2> using CartesianProduct_t = typename CartesianProduct<T1, T2>::type [with T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>]'
prog.cc:56:84: required from here
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: error: static assertion failed: declval() must not be used!
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: note: 'std::__declval_protector<double>::__stop' evaluates to false
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits: In instantiation of 'decltype (__declval<_Tp>(0)) std::declval() [with _Tp = float; decltype (__declval<_Tp>(0)) = float&&]':
prog.cc:37:81: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::innerHelper(T, std::tuple<_Args2 ...>) [with T = Example; Ts = {int, double, float}; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:43:40: required from 'static constexpr auto CartesianProduct<T1, T2, <anonymous>, <anonymous> >::outerHelper(std::tuple<_Args1 ...>, T) [with Ts = {Example, double}; T = std::tuple<int, double, float>; std::enable_if_t<is_default_constructible_v<T> >* <anonymous> = 0; std::enable_if_t<(is_default_constructible_v<Ts> && ...)>* <anonymous> = 0; T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>; std::enable_if_t<is_tuple_v<T1> >* <anonymous> = 0; std::enable_if_t<is_tuple_v<T2> >* <anonymous> = 0]'
prog.cc:46:51: required from 'class CartesianProduct<std::tuple<Example, double>, std::tuple<int, double, float>, 0, 0>'
prog.cc:49:7: required by substitution of 'template<class T1, class T2> using CartesianProduct_t = typename CartesianProduct<T1, T2>::type [with T1 = std::tuple<Example, double>; T2 = std::tuple<int, double, float>]'
prog.cc:56:84: required from here
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: error: static assertion failed: declval() must not be used!
/opt/wandbox/gcc-head/include/c++/12.0.0/type_traits:2384:47: note: 'std::__declval_protector<float>::__stop' evaluates to false
Exit Code:
1