R,C++ 共に初心者です。
RcppでDataFrame内のベクターの型を判定する方法がわからずに躓いています。
的外れなコードで申し訳ございませんがご指摘をお願いします。

【環境】
Windows 10
RStudio 1.044
Rcpp 0.12.5

実験コード

// [[Rcpp::export]]
StringVector test(DataFrame df)
{
  String s0 = typeid(df).name();
  String s1 = typeid(df[0]).name();
  String s2 = typeid(df[1]).name();
  String s3 = typeid(df[2]).name();
  String s4 = typeid(df[3]).name();
  String s5 = typeid(df[4]).name();
  String s6 = typeid(df[5]).name();

  // if(strstr(s1, "Date")) { ... }  型に合わせた処理をしたいが
  // if( ... ) { ...}                すべて同じ型名なので分岐できない
  //  :

  StringVector v = StringVector::create(s0,s1,s2,s3,s4,s5,s6);

  return v;
}

/*** R
dd <- data.frame(
  date_    = c(Sys.Date()),
  time_    = c(Sys.time()),
  double_  = c(1.2),
  int_     = c(1),
  string_  = c("ABC"),
  logical_ = c(TRUE)
)
test(dd)
*/

> test(dd)
[1] "N4Rcpp14DataFrame_ImplINS_15PreserveStorageEEE"
[2] "N4Rcpp8internal13generic_proxyILi19EEE"
[3] "N4Rcpp8internal13generic_proxyILi19EEE"
[4] "N4Rcpp8internal13generic_proxyILi19EEE"
[5] "N4Rcpp8internal13generic_proxyILi19EEE"
[6] "N4Rcpp8internal13generic_proxyILi19EEE"
[7] "N4Rcpp8internal13generic_proxyILi19EEE"