#pragma once #include #include namespace WallpaperEngine::Data::Utils::SFINAE { // sfinae to detect the type for template specialization template struct is_glm_vec : std::false_type { }; template struct is_glm_vec> : std::true_type { }; // traits used to guess the type of the vector and it's length template struct GlmVecTraits; template struct GlmVecTraits> { static constexpr int length = L; using type = T; static constexpr glm::qualifier qualifier = Q; }; }