namespace sto
++Rn, Rn++ now is done with *begin(), *endz()
added ++Tpl, Tpl++ const overloads to handel rvalues

scc 'auto P = tuple<int,float>{1,3.3};  __ P, ++P, P++;'
scc 'auto T = MT(1,2,3);  __ ++T, T++, T;'
redefined DEF_ macros through detail::*_ol functions
meta: is_ remake
added std::forward_list
detail::is_*_ol  - removed static
real unit test  u-meta.cc

    pass     10		same:     	cl_elem_type<vint>	 ==  int
    pass     11		same:     	cl_elem_type<vint&>	 ==  int
    pass     12		same:     	cl_elem_type<vint&&>	 ==  int
    pass     14		same:     	cl_elem_type<const vint>	 ==  int
    pass     15		same:     	cl_elem_type<const vint&>	 ==  int
    pass     16		same:     	cl_elem_type<const vint&&>	 ==  int
    pass     18		same:     	cl_elem_type<int(&)[2]>	 ==  int
    pass     19		same:     	cl_elem_type<int*(*)(int)>	 ==  no_type
    pass     20		same:     	cl_elem_type<int>	 ==  no_type
    pass     24		check:        	is_range<vint>()
    pass     25		check:        	is_range<vint&>()
    pass     26		check:        	is_range<vint&&>()
    pass     28		check:        	is_range<const vint>()
    pass     29		check:        	is_range<const vint&>()
    pass     30		check:        	is_range<const vint&&>()
    pass     32		check:        	! is_range<int*(*)(int)>()
    pass     33		check:        	! is_range<int>()
    pass     34		check:        	is_range<int(&)[2]>()
    pass     37		check:        	has_push_back<vint>()
    pass     38		check:        	has_push_back<vint&>()
    pass     39		check:        	has_push_back<vint&&>()
    pass     40		check:        	has_push_back<const vint&>()
    pass     41		check:        	has_push_back<const vint&&>()
    pass     42		check:        	has_push_back<volatile vint&>()
    pass     43		check:        	! has_push_back<int(&)[2]>()
    pass     44		check:        	! has_push_back<forward_list<int>>()
    pass     45		check:        	! has_push_back<stack<int>>()
    pass     46		check:        	has_push_back<string>()
    pass     47		check:        	! has_push_back<char(&)[2]>()
    pass     48		check:        	!(has_push_back<map<int,int>>())
    pass     52		same:     	cl_traits<vint>::elem_type	 ==  int
    pass     53		same:     	cl_traits<vint&>::elem_type	 ==  int
    pass     54		same:     	cl_traits<vint&&>::elem_type	 ==  int
    pass     56		same:     	cl_traits<const vint>::elem_type	 ==  int
    pass     57		same:     	cl_traits<const vint&>::elem_type	 ==  int
    pass     58		same:     	cl_traits<const vint&&>::elem_type	 ==  int
    pass     62		check:        	has_value_type<vint>()
    pass     63		check:        	has_value_type<vint&>()
    pass     64		check:        	has_value_type<vint&&>()
    pass     65		check:        	has_value_type<const vint&>()
    pass     66		check:        	has_value_type<volatile vint&>()
    pass     67		check:        	has_value_type<vint&&>()
    pass     68		check:        	! has_value_type<int(&)[2]>()
    pass     69		check:        	! has_value_type<int>()
    pass     73		check:        	is_input_iterator<vint::const_iterator>()
    pass     74		check:        	! is_input_iterator<void>()
    pass     75		check:        	! is_input_iterator<char*>()
    pass     76		check:        	! is_input_iterator<char[]>()
    pass     77		check:        	! is_input_iterator<std::true_type>()

------------ all pass ------------