// Copyright 2018-2024 Emil Dotchevski and Reverge Studios, Inc. // 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) #ifdef BOOST_LEAF_TEST_SINGLE_HEADER # include "leaf.hpp" #else # include #endif #include #include namespace leaf = boost::leaf; #include "lightweight_test.hpp" namespace leaf_test { class class_ { }; struct struct_ { }; enum enum_ { }; template class class_template1 { }; template struct struct_template1 { }; template class class_template2 { }; template struct struct_template2 { }; } namespace boost { namespace leaf { struct in_namespace_boost_leaf { }; } } class class_ { }; struct struct_ { }; enum enum_ { }; template class class_template1 { }; template struct struct_template1 { }; template class class_template2 { }; template struct struct_template2 { }; bool test(leaf::parsed const & pn, char const * correct) { return std::strlen(correct) == pn.len && std::memcmp(correct, pn.name, pn.len) == 0; } int main() { using leaf::parse; BOOST_TEST(test(parse(), "boost::leaf::in_namespace_boost_leaf")); BOOST_TEST(test(parse(), "int")); BOOST_TEST(test(parse(), "leaf_test::class_")); BOOST_TEST(test(parse(), "leaf_test::struct_")); BOOST_TEST(test(parse(), "leaf_test::enum_")); BOOST_TEST(test(parse>(), "leaf_test::class_template1<42>")); BOOST_TEST(test(parse>(), "leaf_test::struct_template1<42>")); BOOST_TEST(test(parse>(), "leaf_test::class_template2")); BOOST_TEST(test(parse>(), "leaf_test::struct_template2")); BOOST_TEST(test(parse(), "class_")); BOOST_TEST(test(parse(), "struct_")); BOOST_TEST(test(parse(), "enum_")); BOOST_TEST(test(parse>(), "class_template1<42>")); BOOST_TEST(test(parse>(), "struct_template1<42>")); BOOST_TEST(test(parse>(), "class_template2")); BOOST_TEST(test(parse>(), "struct_template2")); return boost::report_errors(); }