示例#1
0
 static void call(utree& ut)
 {
     if (!detail::is_list(ut)) {
         if (detail::is_uninitialized(ut))
             ut = empty_list;
         else {
             utree retval (empty_list);
             retval.push_back(ut);
             ut.swap(retval);
         }
     }
 }
示例#2
0
        static bool call(utree& c, T const& val)
        {
            switch (traits::which(c))
            {
                case utree_type::invalid_type:
                case utree_type::nil_type:
                case utree_type::list_type:
                    c.push_back(val);
                    break;

                default:
                {
                    utree ut;
                    ut.push_back(c);
                    ut.push_back(val);
                    c.swap(ut);
                }
                break;
            }
            return true;
        }