1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // Trivial test for core::demangle
- //
- // Copyright (c) 2014 Peter Dimov
- // Copyright (c) 2014 Andrey Semashev
- //
- // Distributed under the Boost Software License, Version 1.0.
- // See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt
- //
- #include <boost/core/demangle.hpp>
- #include <typeinfo>
- #include <iostream>
- template<class T1, class T2> struct Y1
- {
- };
- void test_demangle()
- {
- typedef Y1<int, long> T;
- std::cout << boost::core::demangle( typeid( T ).name() ) << std::endl;
- }
- void test_demangle_alloc()
- {
- typedef Y1<int, long> T;
- const char* p = boost::core::demangle_alloc( typeid( T ).name() );
- if (p)
- {
- std::cout << p << std::endl;
- boost::core::demangle_free(p);
- }
- else
- {
- std::cout << "[demangling failed]" << std::endl;
- }
- }
- void test_scoped_demangled_name()
- {
- typedef Y1<int, long> T;
- boost::core::scoped_demangled_name demangled_name( typeid( T ).name() );
- const char* p = demangled_name.get();
- if (p)
- {
- std::cout << p << std::endl;
- }
- else
- {
- std::cout << "[demangling failed]" << std::endl;
- }
- }
- int main()
- {
- test_demangle();
- test_demangle_alloc();
- test_scoped_demangled_name();
- return 0;
- }
|