#include <iostream>

template<int n>
struct mosiv{int data[n];};

template<int n>
using mosiv_ptr = mosiv<n> *;


int main() {
  int petuhi[] = {1, 2, 3, 4, 5};
  int krestuhi[5];
  *(mosiv_ptr<5>)&krestuhi = *(mosiv_ptr<5>)&petuhi;

  for(int i = 0; i < 5; ++i) {
    std::cout << krestuhi[i] << ", ";
  }
  return 0;
}
