Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // Initializer list
  2. #include <initializer_list>
  3.  
  4. template < int n >
  5. class Vec
  6. {
  7. private:
  8.     float e[n];
  9. public:
  10.     Vec(std::initializer_list<float> params);
  11.     constexpr int GetSize( void ) const { return n; }
  12. };
  13.  
  14. template < int n >
  15. Vec<n>::Vec<n>(std::initializer_list<float> params) {
  16.     static_assert(params.count() == n, “size mismatch”); // C++11
  17.     std::initializer_list<float>::iterator it = params.begin();
  18.     for (float &x: e) { // C++11 foreach
  19.         x = *it;
  20.         ++it;
  21.     }
  22. }