我试图制作菜单类的模板类,并尝试传递T类型,以便能够更改Argument类以使其更多用途
template<class T>
class Menu : public std::vector<std::tuple<uint8_t, std::wstring, std::function<void(T)>>> {
/**code over here**/
}
但每个GCC都给我一个错误
C:\Users\InfoLabA-PC04\Desktop\Ar\Arley.hpp:188:8: error: invalid parameter type 'void' class Menu : public std::vector<std::tuple<uint8_t, std::wstring, std::function<void(T)>>> { ^~~~
当我尝试使用它时
Menu<void> MenuName;
答案 0 :(得分:3)
您可以将声明更改为
template <typename... Ts>
class Menu : public std::vector<std::tuple<uint8_t,
std::wstring,
std::function<void(Ts...)>>> {
// ...
};
并使用它
Menu<> MenuName;