nvp_test.cpp 924 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. Copyright 2019 Glen Joseph Fernandes
  3. (glenjofe@gmail.com)
  4. Distributed under the Boost Software License, Version 1.0.
  5. (http://www.boost.org/LICENSE_1_0.txt)
  6. */
  7. #include <boost/core/nvp.hpp>
  8. #include <boost/core/lightweight_test.hpp>
  9. void test()
  10. {
  11. const char* n = "name";
  12. int v = 1;
  13. boost::nvp<int> p(n, v);
  14. BOOST_TEST_EQ(p.name(), n);
  15. BOOST_TEST_EQ(p.value(), 1);
  16. BOOST_TEST_EQ(&p.value(), &v);
  17. }
  18. void test_factory()
  19. {
  20. const char* n = "name";
  21. int v = 1;
  22. boost::nvp<int> p = boost::make_nvp(n, v);
  23. BOOST_TEST_EQ(p.name(), n);
  24. BOOST_TEST_EQ(p.value(), 1);
  25. BOOST_TEST_EQ(&p.value(), &v);
  26. }
  27. void test_macro()
  28. {
  29. int v = 1;
  30. boost::nvp<int> p = BOOST_NVP(v);
  31. BOOST_TEST_CSTR_EQ(p.name(), "v");
  32. BOOST_TEST_EQ(p.value(), 1);
  33. BOOST_TEST_EQ(&p.value(), &v);
  34. }
  35. int main()
  36. {
  37. test();
  38. test_factory();
  39. test_macro();
  40. return boost::report_errors();
  41. }