]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/meta.h
Move NeedsCollection into its own header and adjust for new Sfinae struct
[libs/datafile.git] / source / meta.h
diff --git a/source/meta.h b/source/meta.h
new file mode 100644 (file)
index 0000000..ac6ec1b
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef MSP_DATAFILE_META_H_
+#define MSP_DATAFILE_META_H_
+
+#include <msp/core/meta.h>
+
+namespace Msp {
+namespace DataFile {
+
+/**
+Helper struct to determine whether a Loader has a Collection typedef.
+*/
+struct CheckCollectionType: Sfinae
+{
+       template<typename T>
+       static Yes f(typename T::Collection *);
+       using Sfinae::f;
+};
+
+template<typename T> struct NeedsCollection: Sfinae::Evaluate<CheckCollectionType, T> { };
+
+} // namespace DataFile
+} // namespace Msp
+
+#endif