29 class vec_type :
public type<vec_type> {
31 friend struct std::hash<vec_type>;
33 using base_type = type;
42 vec_type(ValueType type, size_t length, size_t size)
noexcept;
44 vec_type(
const vec_type& other)
noexcept;
46 vec_type(vec_type&& other)
noexcept;
48 ~vec_type()
noexcept override;
51 vec_type& operator=(
const vec_type& other)
noexcept;
53 vec_type& operator=(vec_type&& other)
noexcept;
57 template<type_visitor T>
59 template<
class T, std::enable_if_t<is_type_visitor_v<T>,
bool> =
true>
61 void accept(T& visitor)
const {
66 [[nodiscard]] ValueType get_type()
const noexcept;
68 [[nodiscard]] size_t get_length()
const noexcept;
71 [[nodiscard]] std::string to_string()
const noexcept override;
73 friend bool operator==(
const vec_type& lhs,
const vec_type& rhs)
noexcept;
74 friend bool operator!=(
const vec_type& lhs,
const vec_type& rhs)
noexcept;
#define _GLSL_STRUCT_HAS_CXX20
check if compiler has c++ version greater or equal to c++20 and if user enabled c++20 features using ...
Definition config.hpp:142
#define _GLSL_STRUCT_HAS_TYPES
check if user not disabled type containers using GLSL_STRUCT_DISABLE_TYPES
Definition config.hpp:162