#ifndef dplyr_tools_all_na_H
#define dplyr_tools_all_na_H

template <int RTYPE>
inline bool all_na_impl(const Rcpp::Vector<RTYPE>& x) {
  return all(is_na(x)).is_true();
}

template <>
inline bool all_na_impl<REALSXP>(const Rcpp::NumericVector& x) {
  return all(is_na(x) & !is_nan(x)).is_true();
}

inline bool all_na(SEXP x) {
  RCPP_RETURN_VECTOR(all_na_impl, x);
}

#endif
