]> git.tdb.fi Git - libs/datafile.git/blob - source/meta.h
Cosmetic changes
[libs/datafile.git] / source / meta.h
1 #ifndef MSP_DATAFILE_META_H_
2 #define MSP_DATAFILE_META_H_
3
4 #include <msp/core/meta.h>
5
6 namespace Msp {
7 namespace DataFile {
8
9 /**
10 Helper struct to determine whether a Loader has a Collection typedef.
11 */
12 struct CheckCollectionType: Sfinae
13 {
14         template<typename T>
15         static Yes f(typename T::Collection *);
16         using Sfinae::f;
17 };
18
19 template<typename T> struct NeedsCollection: Sfinae::Evaluate<CheckCollectionType, T> { };
20
21 /**
22 Helper struct to determine whether a type has a Loader class.
23 */
24 struct CheckLoader: Sfinae
25 {
26         template<typename T>
27         static Yes f(typename T::Loader *);
28         using Sfinae::f;
29 };
30
31 template<typename T> struct HasLoader: Sfinae::Evaluate<CheckLoader, T> { };
32
33 } // namespace DataFile
34 } // namespace Msp
35
36 #endif