Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ostream>
- #include <string>
- #include <type_traits>
- #include <cstdlib>
- struct reflect
- {
- template< typename T >
- operator T () const
- {
- static_assert(std::is_default_constructible< T >{});
- typename_ = __PRETTY_FUNCTION__;
- return {};
- }
- friend
- std::ostream &
- operator << (std::ostream & _out, reflect const & _reflect)
- {
- return _out << _reflect.typename_;
- }
- private :
- mutable std::string typename_;
- };
- int
- main()
- {
- reflect const r{};
- struct {} _ = r;
- std::cout << r << std::endl;
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement