#include #include #include #include int main(int argc, char** argv) { std::list lst; int menu = -1; while (menu) { std::cout << "1) string\n"; std::cout << "2) int\n"; std::cout << "0) done\n"; std::string tmp; std::cin >> tmp; menu = atoi(tmp.c_str()); if (menu == 1) { std::cout << "string: "; std::cin >> tmp; // construct a boost:any with a string and add to list lst.push_back(boost::any(tmp)); } else if (menu == 2) { std::cout << "int: "; std::cin >> tmp; lst.push_back(boost::any(atoi(tmp.c_str()))); } } for (std::list::iterator i = lst.begin(); i != lst.end() ; ++i) { if ( i->type() == typeid(int) ) { std::cout << "int : "; std::cout << boost::any_cast(*i) << std::endl; } else if (i->type() == typeid(std::string) ) { std::cout << "std::string : "; std::cout << boost::any_cast(*i) << std::endl; } else { std::cout << "unknown type" << std::endl; } } std::cout << "List size is : " << lst.size() << std::endl; return 0; }