fork(2) download
  1. #include <utility>
  2. #include <array>
  3. #include <cstddef>
  4. #include <iostream>
  5.  
  6. template<class T, std::size_t N> struct ArrayWrapper
  7. {
  8. std::array<T,N> arr;
  9. ArrayWrapper(T &&... init) : arr{{std::forward<T>(init)...}} {}
  10. }
  11.  
  12. int main()
  13. {
  14. ArrayWrapper<int, 4> aw{{1,2,3,4}};
  15. std::cout << aw.arr[2] << '\n';
  16. }
  17.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:9:23: error: expansion pattern 'T&&' contains no argument packs
  ArrayWrapper(T &&... init) : arr{{std::forward<T>(init)...}} {}
                       ^
prog.cpp:10:1: error: expected ';' after struct definition
 }
 ^
prog.cpp: In constructor 'ArrayWrapper<T, N>::ArrayWrapper()':
prog.cpp:9:52: error: 'init' was not declared in this scope
  ArrayWrapper(T &&... init) : arr{{std::forward<T>(init)...}} {}
                                                    ^
prog.cpp:9:57: error: expansion pattern 'forward<T>(<expression error>)' contains no argument packs
  ArrayWrapper(T &&... init) : arr{{std::forward<T>(init)...}} {}
                                                         ^
prog.cpp: In function 'int main()':
prog.cpp:14:37: error: no matching function for call to 'ArrayWrapper<int, 4u>::ArrayWrapper(<brace-enclosed initializer list>)'
    ArrayWrapper<int, 4> aw{{1,2,3,4}};
                                     ^
prog.cpp:9:2: note: candidate: ArrayWrapper<T, N>::ArrayWrapper() [with T = int; unsigned int N = 4u]
  ArrayWrapper(T &&... init) : arr{{std::forward<T>(init)...}} {}
  ^
prog.cpp:9:2: note:   candidate expects 0 arguments, 1 provided
prog.cpp:6:41: note: candidate: constexpr ArrayWrapper<int, 4u>::ArrayWrapper(const ArrayWrapper<int, 4u>&)
 template<class T, std::size_t N> struct ArrayWrapper
                                         ^
prog.cpp:6:41: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const ArrayWrapper<int, 4u>&'
prog.cpp:6:41: note: candidate: constexpr ArrayWrapper<int, 4u>::ArrayWrapper(ArrayWrapper<int, 4u>&&)
prog.cpp:6:41: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'ArrayWrapper<int, 4u>&&'
stdout
Standard output is empty