unary_tests.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*=============================================================================
  2. Phoenix V1.2.1
  3. Copyright (c) 2001-2003 Joel de Guzman
  4. Use, modification and distribution is subject to the Boost Software
  5. License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. http://www.boost.org/LICENSE_1_0.txt)
  7. ==============================================================================*/
  8. #include <iostream>
  9. #include <boost/detail/lightweight_test.hpp>
  10. #define PHOENIX_LIMIT 15
  11. #include <boost/spirit/include/phoenix1_primitives.hpp>
  12. #include <boost/spirit/include/phoenix1_operators.hpp>
  13. using namespace phoenix;
  14. using namespace std;
  15. ///////////////////////////////////////////////////////////////////////////////
  16. int
  17. main()
  18. {
  19. int i1 = 1, i = 5;
  20. ///////////////////////////////////////////////////////////////////////////////
  21. //
  22. // Unary operators
  23. //
  24. ///////////////////////////////////////////////////////////////////////////////
  25. BOOST_TEST((!val(true))() == false);
  26. BOOST_TEST((-val(1))() == -1);
  27. BOOST_TEST((+val(1))() == +1);
  28. BOOST_TEST((~val(1))() == ~1);
  29. BOOST_TEST(*(&arg1)(i1) == *(&i1));
  30. BOOST_TEST((&arg1)(i1) == &i1);
  31. BOOST_TEST((*val(&i1))() == *(&i1));
  32. BOOST_TEST((*&arg1)(i1) == *(&i1));
  33. BOOST_TEST((++var(i))() == 6);
  34. BOOST_TEST((--var(i))() == 5);
  35. BOOST_TEST((var(i)++)() == 5);
  36. BOOST_TEST(i == 6);
  37. BOOST_TEST((var(i)--)() == 6);
  38. BOOST_TEST(i == 5);
  39. return boost::report_errors();
  40. }