Как я могу создать функцию get_data()? ⇐ C++
-
Anonymous
Как я могу создать функцию get_data()?
I have a struct with a union inside. How can I make a get_data() function that should return a bool if(value == input_value::_bool).
enum class input_value { _bool, _1D, _2D, _3D, }; struct input_action { union input_action_data { bool boolean; f32 _1D; glm::vec2 _2D; glm::vec3 _3D{}; }; input_value value; input_action_data data; } A template like this is not working:
template data get_data() const { static_assert(std::is_same::value || std::is_same::value || std::is_same::value, "Unsupported data type"); switch (value) { case PFF::input_value::_bool: return data.boolean; case PFF::input_value::_1D: return data._1d; case PFF::input_value::_2D: return data._2d; case PFF::input_value::_3D: return data._3d; default: return T{}; } } I do not want this:
example_input_action->get_data() example_input_action->get_data_bool()
Источник: https://stackoverflow.com/questions/780 ... a-function
I have a struct with a union inside. How can I make a get_data() function that should return a bool if(value == input_value::_bool).
enum class input_value { _bool, _1D, _2D, _3D, }; struct input_action { union input_action_data { bool boolean; f32 _1D; glm::vec2 _2D; glm::vec3 _3D{}; }; input_value value; input_action_data data; } A template like this is not working:
template data get_data() const { static_assert(std::is_same::value || std::is_same::value || std::is_same::value, "Unsupported data type"); switch (value) { case PFF::input_value::_bool: return data.boolean; case PFF::input_value::_1D: return data._1d; case PFF::input_value::_2D: return data._2d; case PFF::input_value::_3D: return data._3d; default: return T{}; } } I do not want this:
example_input_action->get_data() example_input_action->get_data_bool()
Источник: https://stackoverflow.com/questions/780 ... a-function
Мобильная версия