Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <any>
- #include <string>
- #include <algorithm>
- struct S {
- std::string str;
- S(S&& arg) : str(std::move(arg.str)) { std::cout << ">> S moved" << std::endl; }
- S(const S& arg) : str(arg.str) { std::cout << ">> S copied" << std::endl; }
- S(const char *s) : str(s) { std::cout << ">> S created" << std::endl; }
- S& operator= (const S& arg) { str = arg.str; return *this; }
- S& operator= (S&& arg) { str = std::move(arg.str); return *this; }
- virtual ~S() { std::cout << "<< S destroyed" << std::endl; }
- };
- int main() {
- std::vector<std::any> container;
- container.emplace_back(S("test 1"));
- for (const auto& a : container) {
- //const S& smth = std::any_cast<const S&>(a);
- std::cout << a.type().name() << ", " << std::any_cast<const S&>(a).str << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement