11 #include <boost/range.hpp> 12 #include <boost/type_traits.hpp> 13 #include "pb_frimessages_callbacks.h" 15 #ifdef BOOST_LIB_STD_CXX 20 template<>
struct iterator_traits<tRepeatedDoubleArguments> {
21 typedef std::ptrdiff_t difference_type;
22 typedef double value_type;
23 typedef double* pointer;
24 typedef double& reference;
25 typedef std::random_access_iterator_tag iterator_category;
33 template<>
struct iterator_traits<tRepeatedIntArguments> {
34 typedef std::ptrdiff_t difference_type;
35 typedef int64_t value_type;
36 typedef int64_t* pointer;
37 typedef int64_t& reference;
38 typedef std::random_access_iterator_tag iterator_category;
50 struct range_mutable_iterator< tRepeatedDoubleArguments >
56 struct range_const_iterator< tRepeatedDoubleArguments >
63 typedef const double*
type;
72 struct range_mutable_iterator< tRepeatedIntArguments >
78 struct range_const_iterator< tRepeatedIntArguments >
85 typedef const int64_t*
type;
91 template<
typename T>
typename boost::range_mutable_iterator<T>::type
range_begin(T&);
92 template<
typename T>
typename boost::range_const_iterator<T>::type
range_begin(
const T&);
93 template<
typename T>
typename boost::range_mutable_iterator<T>::type
range_end(T&);
94 template<
typename T>
typename boost::range_const_iterator<T>::type
range_end(
const T&);
115 return x.value+x.size;
119 inline const double*
range_end(
const tRepeatedDoubleArguments&
x )
121 return x.value+x.size;
141 return x.value+x.size;
145 inline const int64_t*
range_end(
const repeatedIntArguments&
x )
147 return x.value+x.size;
boost::range_mutable_iterator< T >::type range_begin(T &)
boost::range_mutable_iterator< T >::type range_end(T &)