Rcpp Version 1.0.0
Environment.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 // Environment.h: Rcpp R/C++ interface class library --
4 //
5 // Copyright (C) 2012 - 2013 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_api_meat_Environment_h
23 #define Rcpp_api_meat_Environment_h
24 
25 namespace Rcpp{
26 
27 template <template <class> class StoragePolicy>
28 template <typename WRAPPABLE>
29 bool Environment_Impl<StoragePolicy>::assign( const std::string& name, const WRAPPABLE& x) const {
30  return assign(name, Shield<SEXP>(wrap(x)));
31 }
32 
33 template <template <class> class StoragePolicy>
35  Shield<SEXP> wrapped(wrap(name));
36  Shield<SEXP> env(as_environment(wrapped));
37  Storage::set__(env) ;
38 }
39 
40 template <template <class> class StoragePolicy>
42  Shield<SEXP> wrapped(wrap(pos));
43  Shield<SEXP> env(as_environment(wrapped));
44  Storage::set__(env) ;
45 }
46 
47 inline Environment new_env(int size = 29) {
48  Function newEnv("new.env", R_BaseNamespace);
49  return newEnv(_["size"] = size, _["parent"] = R_EmptyEnv);
50 }
51 
52 inline Environment new_env(SEXP parent, int size = 29) {
53  Function newEnv("new.env", R_BaseNamespace);
54  return newEnv(_["size"] = size, _["parent"] = parent);
55 }
56 
57 } // namespace Rcpp
58 
59 #endif
Environment new_env(int size=29)
Definition: Environment.h:47
static internal::NamedPlaceHolder _
Definition: Named.h:64
bool assign(const std::string &name, SEXP x) const
Definition: Environment.h:207
Function_Impl< PreserveStorage > Function
Definition: Function.h:114
Environment_Impl parent() const
Definition: Environment.h:387
Environment_Impl(int pos)
Definition: Environment.h:41
bool assign(const std::string &name, const WRAPPABLE &x) const
SEXP wrap(const Date &date)
Definition: Date.h:38
Rcpp API.
Definition: algo.h:28
Environment_Impl< PreserveStorage > Environment
Definition: Environment.h:401