#include #include <cstdarg> #include void printAny(std::ostream& out, const boost::any& value) { if (typeid(float) == value.type()) out << boost::any_cast<float>(value) << ", "; else if(typeid(int) == value.type()) out << boost::any_cast(value) << ", "; else if (typeid(std::string) == value.type()) out << boost::any_cast<std::string>(value) << ", "; else out << "Unknow type: " << value.type().name() << ", "; } template <typename... T> class Test { public: Test(const T&... args) { const unsigned int size = sizeof...(T); boost::any array[size] = { args... }; for (unsigned int i = 0; i < size; ++i) printAny(std::cout, array[i]); std::cout << std::endl; } ~Test() { } }; int main() { std::cout << "Test" << std::endl; Test<>(); Test(547); Test(4, 6); Test(true); Test(18, "Kikoo"); Test (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question