29 class mat_type :
public type<mat_type> {
31 friend struct std::hash<mat_type>;
33 using base_type = type;
44 mat_type(ValueType type, size_t cols, size_t rows, size_t size)
noexcept;
46 mat_type(
const mat_type& other)
noexcept;
48 mat_type(mat_type&& other)
noexcept;
50 ~mat_type()
noexcept override;
53 mat_type& operator=(
const mat_type& other)
noexcept;
55 mat_type& operator=(mat_type&& other)
noexcept;
59 template<type_visitor T>
61 template<
class T, std::enable_if_t<is_type_visitor_v<T>,
bool> =
true>
63 void accept(T& visitor)
const {
68 [[nodiscard]] ValueType get_type()
const noexcept;
70 [[nodiscard]] size_t get_rows()
const noexcept;
72 [[nodiscard]] size_t get_cols()
const noexcept;
74 [[nodiscard]] size_t get_vec_length()
const noexcept;
76 [[nodiscard]] size_t get_array_count()
const noexcept;
79 [[nodiscard]] std::string to_string()
const noexcept override;
81 friend bool operator==(
const mat_type& lhs,
const mat_type& rhs)
noexcept;
82 friend bool operator!=(
const mat_type& lhs,
const mat_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