Mercurial > hg > svcore
annotate base/BaseTypes.h @ 1049:10055a284716 cxx11
Doh
author | Chris Cannam |
---|---|
date | Tue, 10 Mar 2015 20:02:02 +0000 |
parents | |
children | cafd65fc411b |
rev | line source |
---|---|
Chris@1049 | 1 |
Chris@1049 | 2 #ifndef BASE_TYPES_H |
Chris@1049 | 3 #define BASE_TYPES_H |
Chris@1049 | 4 |
Chris@1049 | 5 #include <cstdint> |
Chris@1049 | 6 |
Chris@1049 | 7 typedef int64_t sv_frame_t; |
Chris@1049 | 8 typedef double sv_samplerate_t; |
Chris@1049 | 9 |
Chris@1049 | 10 template<typename T, typename C> |
Chris@1049 | 11 bool in_range_for(const C &container, T i) |
Chris@1049 | 12 { |
Chris@1049 | 13 if (i < 0) return false; |
Chris@1049 | 14 if (sizeof(T) > sizeof(typename C::size_type)) { |
Chris@1049 | 15 return i < static_cast<T>(container.size()); |
Chris@1049 | 16 } else { |
Chris@1049 | 17 return static_cast<typename C::size_type>(i) < container.size(); |
Chris@1049 | 18 } |
Chris@1049 | 19 } |
Chris@1049 | 20 |
Chris@1049 | 21 #endif |