fork download
  1. template<typename T, int size>
  2. struct base_vec
  3. {
  4. T v[size];
  5.  
  6. virtual T getLength()
  7. {
  8. return 1;
  9. }
  10.  
  11. virtual ~base_vec(){}
  12. };
  13.  
  14. template<typename T, int size>
  15. struct vec : public base_vec<T, size> ///Das Klassentemplate
  16. {
  17. };
  18.  
  19. template<typename T>
  20. struct vec<T, 3> : public base_vec<T, 1> ///Spezialisierung
  21. {
  22. vec(){}
  23. vec(T , T, T){}
  24. };
  25.  
  26. typedef vec<float, 2> vec2f;
  27. typedef vec<float, 3> vec3f;
  28. typedef vec<float, 4> vec4f;
  29.  
  30. int main()
  31. {
  32. vec3f f(1, 2, 3);
  33. f.getLength();
  34. }
  35.  
Success #stdin #stdout 0.02s 2676KB
stdin
Standard input is empty
stdout
Standard output is empty