Rcpp Version 0.9.10
get_na.h
Go to the documentation of this file.
00001 // -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
00002 /* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
00003 //
00004 // get_na.h: Rcpp R/C++ interface class library -- NA handling
00005 //
00006 // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
00007 //
00008 // This file is part of Rcpp.
00009 //
00010 // Rcpp is free software: you can redistribute it and/or modify it
00011 // under the terms of the GNU General Public License as published by
00012 // the Free Software Foundation, either version 2 of the License, or
00013 // (at your option) any later version.
00014 //
00015 // Rcpp is distributed in the hope that it will be useful, but
00016 // WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 // GNU General Public License for more details.
00019 //
00020 // You should have received a copy of the GNU General Public License
00021 // along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
00022    
00023 #ifndef Rcpp__traits__get_na__h
00024 #define Rcpp__traits__get_na__h
00025 
00026 namespace Rcpp{
00027 namespace traits{
00028 
00029 template<int RTYPE> 
00030 typename storage_type<RTYPE>::type get_na() ;
00031 
00032 template<>
00033 inline int get_na<INTSXP>(){ return NA_INTEGER ; }
00034 
00035 template<>
00036 inline int get_na<LGLSXP>(){ return NA_LOGICAL ; }
00037 
00038 template<>
00039 inline double get_na<REALSXP>(){ return NA_REAL ; }
00040 
00041 template<>
00042 inline Rcomplex get_na<CPLXSXP>(){ 
00043         Rcomplex x ;
00044         x.r = NA_REAL ;
00045         x.i = NA_REAL ;
00046         return x ;
00047 }
00048 
00049 template<>
00050 inline SEXP get_na<STRSXP>(){ return NA_STRING ; }
00051 
00052 }
00053 }
00054 
00055 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Defines