Skip to content

Commit d475121

Browse files
committed
check for c++0x unordered_map/set; add to capabilities
1 parent a8b50f1 commit d475121

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/api.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ SEXP as_character_externalptr(SEXP xp){
155155

156156
// [[Rcpp::internal]]
157157
SEXP rcpp_capabilities(){
158-
Shield<SEXP> cap( Rf_allocVector( LGLSXP, 9 ) );
159-
Shield<SEXP> names( Rf_allocVector( STRSXP, 9 ) );
158+
Shield<SEXP> cap( Rf_allocVector( LGLSXP, 11 ) );
159+
Shield<SEXP> names( Rf_allocVector( STRSXP, 11 ) );
160160
#ifdef HAS_VARIADIC_TEMPLATES
161161
LOGICAL(cap)[0] = TRUE ;
162162
#else
@@ -198,6 +198,18 @@ SEXP rcpp_capabilities(){
198198
LOGICAL(cap)[8] = FALSE ;
199199
#endif
200200

201+
#ifdef HAS_CXX0X_UNORDERED_MAP
202+
LOGICAL(cap)[9] = TRUE ;
203+
#else
204+
LOGICAL(cap)[9] = FALSE ;
205+
#endif
206+
207+
#ifdef HAS_CXX0X_UNORDERED_SET
208+
LOGICAL(cap)[10] = TRUE ;
209+
#else
210+
LOGICAL(cap)[10] = FALSE ;
211+
#endif
212+
201213
SET_STRING_ELT(names, 0, Rf_mkChar("variadic templates") ) ;
202214
SET_STRING_ELT(names, 1, Rf_mkChar("initializer lists") ) ;
203215
SET_STRING_ELT(names, 2, Rf_mkChar("exception handling") ) ;
@@ -207,6 +219,8 @@ SEXP rcpp_capabilities(){
207219
SET_STRING_ELT(names, 6, Rf_mkChar("demangling") ) ;
208220
SET_STRING_ELT(names, 7, Rf_mkChar("classic api") ) ;
209221
SET_STRING_ELT(names, 8, Rf_mkChar("long long") ) ;
222+
SET_STRING_ELT(names, 9, Rf_mkChar("C++0x unordered maps") ) ;
223+
SET_STRING_ELT(names, 10, Rf_mkChar("C++0x unordered sets") ) ;
210224
Rf_setAttrib( cap, R_NamesSymbol, names ) ;
211225
return cap ;
212226
}

0 commit comments

Comments
 (0)