@@ -26,17 +26,17 @@ namespace Rcpp{
2626
2727 class Range : public VectorBase <INTSXP,false , Range >{
2828 public:
29- Range ( int start_, int end__ ) : start(start_), end_(end__){
29+ Range ( R_xlen_t start_, R_xlen_t end__ ) : start(start_), end_(end__){
3030 if ( start_ > end__ ){
3131 throw std::range_error ( " upper value must be greater than lower value" ) ;
3232 }
3333 }
3434
35- inline int size () const {
35+ inline R_xlen_t size () const {
3636 return end_ - start + 1 ;
3737 }
3838
39- inline int operator []( int i) const {
39+ inline R_xlen_t operator []( R_xlen_t i) const {
4040 return start + i ;
4141 }
4242
@@ -60,29 +60,31 @@ namespace Rcpp{
6060 return orig ;
6161 }
6262
63- Range& operator +=(int n) {
63+ Range& operator +=(R_xlen_t n) {
6464 start += n ; end_ += n ;
6565 return *this ;
6666 }
6767
68- Range& operator -=(int n) {
68+ Range& operator -=(R_xlen_t n) {
6969 start -= n ; end_ -= n ;
7070 return *this ;
7171 }
7272
73- Range operator +( int n ){
73+ Range operator +( R_xlen_t n ){
7474 return Range ( start + n, end_ + n ) ;
7575 }
76- Range operator -( int n ){
76+
77+ Range operator -( R_xlen_t n ){
7778 return Range ( start - n, end_ - n ) ;
7879 }
7980
80- inline int get_start () const { return start ; }
81- inline int get_end () const { return end_ ; }
81+ inline R_xlen_t get_start () const { return start ; }
82+
83+ inline R_xlen_t get_end () const { return end_ ; }
8284
8385 private:
84- int start ;
85- int end_ ;
86+ R_xlen_t start ;
87+ R_xlen_t end_ ;
8688 } ;
8789
8890}
0 commit comments