fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template <typename T, std::size_t... Sizes>
  5. class Foo {
  6. public:
  7. static constexpr std::size_t rank1 = sizeof...(Sizes);
  8. static const std::size_t rank2 = sizeof...(Sizes);
  9. static const constexpr std::size_t rank3 = sizeof...(Sizes);
  10. const std::size_t dimensions[sizeof...(Sizes)] = {Sizes...};
  11. };
  12.  
  13. int main() {
  14.  
  15. Foo<int, 1, 2, 3> foo;
  16.  
  17. std::cout << "Rank: " << foo.rank1 << std::endl;
  18. std::cout << "Rank: " << foo.rank2 << std::endl;
  19. std::cout << "Rank: " << foo.rank3 << std::endl;
  20.  
  21. return 0;
  22. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Rank: 3
Rank: 3
Rank: 3