| 28 | class Matrix; |
| 29 | |
| 30 | class no_init_vector { |
| 31 | public: |
| 32 | no_init_vector(R_xlen_t size_): size(size_){} |
| 33 | |
| 34 | inline R_xlen_t get() const { |
| 35 | return size; |
| 36 | } |
| 37 | |
| 38 | template <int RTYPE, template <class> class StoragePolicy > |
| 39 | operator Vector<RTYPE, StoragePolicy>() const { |
| 40 | // Explicitly protect temporary vector to avoid false positive |
| 41 | // with rchk (#892) |
| 42 | Shield<SEXP> x(Rf_allocVector(RTYPE, size)); |
| 43 | Vector<RTYPE, PreserveStorage> ret(x); |
| 44 | return ret; |
| 45 | } |
| 46 | |
| 47 | private: |
| 48 | R_xlen_t size ; |
| 49 | } ; |
| 50 | |
| 51 | class no_init_matrix { |
| 52 | public: |