fork download
  1. #include <iostream>
  2. #include <cstddef>
  3. #include <utility>
  4. #include <array>
  5.  
  6. template <typename T, std::size_t N, typename... Ts>
  7. constexpr std::array<T, N> permute(const std::array<T, N>& arr, const std::array<int, N>& permutation, Ts&&... processed)
  8. {
  9. return (sizeof...(Ts) == N) ?
  10. std::array<T, N>{ std::forward<Ts>(processed)... } :
  11. permute(arr, permutation, std::forward<Ts>(processed)..., arr[permutation[sizeof...(Ts)]]);
  12. }
  13.  
  14. int main()
  15. {
  16. constexpr std::array<int, 3> arr{1, 2, 3};
  17. constexpr std::array<int, 3> permutation{2, 1, 0};
  18. constexpr auto result = permute(arr, permutation);
  19.  
  20. for (const auto& x : result)
  21. std::cout << x << std::endl;
  22.  
  23. return 0;
  24. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
  return (sizeof...(Ts) == N) ?
         ~~~~~~~~~~~~~~~~~~~~~^
   std::array<T, N>{ std::forward<Ts>(processed)... } :
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   permute(arr, permutation, std::forward<Ts>(processed)..., arr[permutation[sizeof...(Ts)]]);
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {}]’
prog.cpp:18:50:   required from here
prog.cpp:9:30: error: too many initializers for ‘std::array<int, 3ul>’
prog.cpp: In instantiation of ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&, const int&}]’:
prog.cpp:11:10:   recursively required from ‘constexpr std::array<_Tp, _Nm> permute(const std::array<_Tp, _Nm>&, const std::array<int, N>&, Ts&& ...) [with T = int; long unsigned int N = 3ul; Ts = {const int&}]’
prog.cpp:11:10:   required from ‘constexpr s
stdout
Standard output is empty