C++ Template Metaprogramming
Solutions to the exercises throughout the book
Loading...
Searching...
No Matches
test_5_10 Namespace Reference

Tests functionality from Exercise 5-10. More...

Typedefs

typedef chapter5::tree< double, chapter5::tree< void *, int, long >, char > tree_seq
 A test tree.
 
typedef chapter5::tree< double, chapter5::tree< short, long, chapter5::tree< float, void * > >, chapter5::tree< int, void_, char > > tree_seq_hard
 A more involved test tree.
 
typedef boost::mpl::begin< inorder_view< tree_seq_hard > >::type tmp1
 
typedef boost::mpl::deref< tmp1 >::type tmp1d
 
typedef boost::mpl::next< tmp1 >::type tmp2
 
typedef boost::mpl::deref< tmp2 >::type tmp2d
 
typedef boost::mpl::next< tmp2 >::type tmp3
 
typedef boost::mpl::deref< tmp3 >::type tmp3d
 
typedef boost::mpl::next< tmp3 >::type tmp4
 
typedef boost::mpl::deref< tmp4 >::type tmp4d
 
typedef boost::mpl::next< tmp4 >::type tmp5
 
typedef boost::mpl::deref< tmp5 >::type tmp5d
 
typedef boost::mpl::next< tmp5 >::type tmp6
 
typedef boost::mpl::deref< tmp6 >::type tmp6d
 
typedef boost::mpl::next< tmp6 >::type tmp7
 
typedef boost::mpl::deref< tmp7 >::type tmp7d
 
typedef boost::mpl::next< tmp7 >::type tmp8
 
typedef boost::mpl::end< inorder_view< tree_seq_hard > >::type tmp_end
 

Functions

 BOOST_STATIC_ASSERT ((boost::is_same< long, tmp1d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< short, tmp2d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< void *, tmp3d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< float, tmp4d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< double, tmp5d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< int, tmp6d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< char, tmp7d >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< tmp_end, tmp8 >::value))
 
 BOOST_STATIC_ASSERT ((boost::mpl::equal< exercise_5_10::inorder_view< tree_seq >, boost::mpl::vector< int, void *, long, double, char >, boost::is_same< _1, _2 > >::value))
 
 BOOST_STATIC_ASSERT ((boost::mpl::equal< exercise_5_10::inorder_view< tree_seq_hard >, boost::mpl::vector< long, short, void *, float, double, int, char >, boost::is_same< _1, _2 > >::value))
 

Detailed Description

Tests functionality from Exercise 5-10.

Typedef Documentation

◆ tmp1

typedef boost::mpl::begin<inorder_view<tree_seq_hard>>::type test_5_10::tmp1

Definition at line 118 of file chapter-5.cpp.

◆ tmp1d

typedef boost::mpl::deref<tmp1>::type test_5_10::tmp1d

Definition at line 119 of file chapter-5.cpp.

◆ tmp2

typedef boost::mpl::next<tmp1>::type test_5_10::tmp2

Definition at line 122 of file chapter-5.cpp.

◆ tmp2d

typedef boost::mpl::deref<tmp2>::type test_5_10::tmp2d

Definition at line 123 of file chapter-5.cpp.

◆ tmp3

typedef boost::mpl::next<tmp2>::type test_5_10::tmp3

Definition at line 126 of file chapter-5.cpp.

◆ tmp3d

typedef boost::mpl::deref<tmp3>::type test_5_10::tmp3d

Definition at line 127 of file chapter-5.cpp.

◆ tmp4

typedef boost::mpl::next<tmp3>::type test_5_10::tmp4

Definition at line 130 of file chapter-5.cpp.

◆ tmp4d

typedef boost::mpl::deref<tmp4>::type test_5_10::tmp4d

Definition at line 131 of file chapter-5.cpp.

◆ tmp5

typedef boost::mpl::next<tmp4>::type test_5_10::tmp5

Definition at line 134 of file chapter-5.cpp.

◆ tmp5d

typedef boost::mpl::deref<tmp5>::type test_5_10::tmp5d

Definition at line 135 of file chapter-5.cpp.

◆ tmp6

typedef boost::mpl::next<tmp5>::type test_5_10::tmp6

Definition at line 138 of file chapter-5.cpp.

◆ tmp6d

typedef boost::mpl::deref<tmp6>::type test_5_10::tmp6d

Definition at line 139 of file chapter-5.cpp.

◆ tmp7

typedef boost::mpl::next<tmp6>::type test_5_10::tmp7

Definition at line 142 of file chapter-5.cpp.

◆ tmp7d

typedef boost::mpl::deref<tmp7>::type test_5_10::tmp7d

Definition at line 143 of file chapter-5.cpp.

◆ tmp8

typedef boost::mpl::next<tmp7>::type test_5_10::tmp8

Definition at line 146 of file chapter-5.cpp.

◆ tmp_end

typedef boost::mpl::end<inorder_view<tree_seq_hard>>::type test_5_10::tmp_end

Definition at line 147 of file chapter-5.cpp.

◆ tree_seq

typedef chapter5::tree< double, chapter5::tree<void*, int, long>, char> test_5_10::tree_seq

A test tree.

    double
    /   \
  void* char
  /  \
int  long

Definition at line 89 of file chapter-5.cpp.

◆ tree_seq_hard

typedef chapter5::tree< double, chapter5::tree< short, long, chapter5::tree<float, void*> >, chapter5::tree< int, void_, char> > test_5_10::tree_seq_hard

A more involved test tree.

        double
      /       \
  short        int
  /   \       /   \
long float  void_ char
      /
    void*

Definition at line 115 of file chapter-5.cpp.

Function Documentation

◆ BOOST_STATIC_ASSERT() [1/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< char, tmp7d >::value)  )

◆ BOOST_STATIC_ASSERT() [2/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< double, tmp5d >::value)  )

◆ BOOST_STATIC_ASSERT() [3/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< float, tmp4d >::value)  )

◆ BOOST_STATIC_ASSERT() [4/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< int, tmp6d >::value)  )

◆ BOOST_STATIC_ASSERT() [5/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< long, tmp1d >::value)  )

◆ BOOST_STATIC_ASSERT() [6/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< short, tmp2d >::value)  )

◆ BOOST_STATIC_ASSERT() [7/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< tmp_end, tmp8 >::value)  )

◆ BOOST_STATIC_ASSERT() [8/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::is_same< void *, tmp3d >::value)  )

◆ BOOST_STATIC_ASSERT() [9/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::mpl::equal< exercise_5_10::inorder_view< tree_seq >, boost::mpl::vector< int, void *, long, double, char >, boost::is_same< _1, _2 > >::value)  )

◆ BOOST_STATIC_ASSERT() [10/10]

test_5_10::BOOST_STATIC_ASSERT ( (boost::mpl::equal< exercise_5_10::inorder_view< tree_seq_hard >, boost::mpl::vector< long, short, void *, float, double, int, char >, boost::is_same< _1, _2 > >::value)  )