Rcpp Version 1.0.14
Loading...
Searching...
No Matches
Reference.h
Go to the documentation of this file.
1// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
2//
3// Reference.h: Rcpp R/C++ interface class library -- Reference class objects
4//
5// Copyright (C) 2010 - 2019 Dirk Eddelbuettel and Romain Francois
6//
7// This file is part of Rcpp.
8//
9// Rcpp is free software: you can redistribute it and/or modify it
10// under the terms of the GNU General Public License as published by
11// the Free Software Foundation, either version 2 of the License, or
12// (at your option) any later version.
13//
14// Rcpp is distributed in the hope that it will be useful, but
15// WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17// GNU General Public License for more details.
18//
19// You should have received a copy of the GNU General Public License
20// along with Rcpp. If not, see <http://www.gnu.org/licenses/>.
21
22#ifndef Rcpp_Reference_h
23#define Rcpp_Reference_h
24
25namespace Rcpp{
26
32 {
33 public:
34
36
38
39
45 Storage::set__(x) ;
46 }
47
48 Reference_Impl& operator=( SEXP other ) {
49 Storage::set__(other) ;
50 return *this ;
51 }
52
59 Reference_Impl( const std::string& klass ) {
60 SEXP newSym = Rf_install("new");
63 Storage::set__( Rcpp_fast_eval( call , Rcpp::internal::get_Rcpp_namespace()) );
64 }
65
66 void update( SEXP x){
67 if( ! ::Rf_isS4(x) ) throw not_reference();
68 }
69 } ;
70
72
73} // namespace Rcpp
74
75#endif
#define RCPP_GENERATE_CTOR_ASSIGN(__CLASS__)
Definition interface.h:21
#define RCPP_API_CLASS(__CLASS__)
Definition interface.h:49
attribute_hidden SEXP get_Rcpp_namespace()
Definition routines.h:121
Rcpp API.
Definition algo.h:28
void update(SEXP)
SEXP Rcpp_fast_eval(SEXP expr, SEXP env)
Definition Rcpp_eval.h:68
T as(SEXP x)
Definition as.h:151
Reference_Impl< PreserveStorage > Reference
Definition Reference.h:71