length_of.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include <vector>
13 
14 namespace illumina { namespace interop { namespace util
15 {
16 
21  template<typename T>
23  {
29  static size_t size(T)
30  { return 1; }
31  };
32 
37  template<typename T>
38  struct length_of_type<std::vector<T> >
39  {
45  static size_t size(const std::vector<T> &vec)
46  { return vec.size(); }
47  };
48 
54  template<typename T>
55  size_t length_of(const T &val)
56  { return length_of_type<T>::size(val); }
57 
62  template<typename T, size_t N>
63  size_t length_of(const T (&)[N])
64  { return N; }
65 
73  template<typename T, size_t N>
74  static std::vector<T> to_vector(const T (&vals)[N])
75  {
76  return std::vector<T>(vals, vals + N);
77  }
78 
79 }}}
80 
81 
Definition: enum_description.h:15
static size_t size(const std::vector< T > &vec)
Definition: length_of.h:45
Definition: enums.h:301
Definition: length_of.h:22
static size_t size(T)
Definition: length_of.h:29
size_t length_of(const T &val)
Definition: length_of.h:55