@@ -6,14 +6,16 @@ using namespace attwoodn::expression_tree;
66
77struct test_fixture {
88 std::string some_string;
9+ char * some_char_ptr;
910};
1011
1112template <class T > struct type_id {typedef T type;};
1213
13- // template<typename Obj, typename CompValue, typename Op = typename type_id<bool (*)(CompValue*, CompValue*)>::type>
14- // node::expression_tree_leaf_node<Obj, Op, CompValue>* make_leaf_node( CompValue Obj::* member_var, Op op, CompValue comp_value ) {
15- // return new node::expression_tree_leaf_node<Obj, Op, CompValue>( member_var, op, comp_value );
16- // }
14+ template <typename Obj, typename CompValue, typename Op = typename type_id<bool (*)(CompValue*, CompValue*)>::type,
15+ typename std::enable_if<std::is_convertible<CompValue, CompValue*>::value, int >::type = 0 >
16+ node::expression_tree_leaf_node<Obj, Op, CompValue>* make_leaf_node ( CompValue Obj::* member_var, Op op, CompValue comp_value ) {
17+ return new node::expression_tree_leaf_node<Obj, Op, CompValue>( member_var, op, comp_value );
18+ }
1719
1820template <typename Obj, typename CompValue, typename Op = typename type_id<bool (*)(CompValue, CompValue)>::type>
1921node::expression_tree_leaf_node<Obj, Op, CompValue>* make_leaf_node ( CompValue Obj::* member_var, Op op, CompValue comp_value ) {
0 commit comments