fork download
  1. #include <array>
  2. using namespace std;
  3.  
  4. template<class T, size_t N1, size_t N2> array<T, N1+N2> concat(
  5. const array<T, N1> &a, const array<T, N2> &b)
  6. {
  7. array<T, N1+N2> ret;
  8. /* copy data into ret */
  9. return ret;
  10. }
  11.  
  12. int main()
  13. {
  14. typedef int T;
  15. array<T, 10> a;
  16. array<T, 5> b;
  17. array<T, 14> ab1 = concat(a, b); // error
  18. array<T, 15> ab2 = concat(a, b); // works
  19. auto ab3 = concat(a, b); // type of ab3 is auto-deduced to array<T, 15>
  20. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:17:27: error: conversion from ‘array<[...],15>’ to non-scalar type ‘array<[...],14>’ requested
  array<T, 14> ab1 = concat(a, b); // error
                     ~~~~~~^~~~~~
stdout
Standard output is empty