fork download
  1. #include <iostream>
  2.  
  3. template<typename T, std::size_t N>
  4. char (& array_size_helper( const T(&)[N]))[N];
  5.  
  6. #define ARRAY_SIZE(x) sizeof(array_size_helper(x))
  7.  
  8.  
  9. int main()
  10. {
  11. int q[5];
  12.  
  13. std::cout << ARRAY_SIZE(q) << std::endl;
  14.  
  15. double z[ARRAY_SIZE(q)];
  16.  
  17. std::cout << ARRAY_SIZE(z) << std::endl;
  18.  
  19. std::cout << sizeof(z) / sizeof(double) << std::endl;
  20.  
  21. return 0;
  22. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
5
5
5