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 &)