|
2 | 2 | // named_object.h: Rcpp R/C++ interface class library -- named SEXP |
3 | 3 | // |
4 | 4 | // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois |
5 | | -// Copyright (C) 2021 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar |
| 5 | +// Copyright (C) 2021 - 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar |
6 | 6 | // |
7 | 7 | // This file is part of Rcpp. |
8 | 8 | // |
@@ -65,18 +65,15 @@ template <typename T> struct is_named : public false_type{}; |
65 | 65 | template <typename T> struct is_named< named_object<T> > : public true_type {}; |
66 | 66 | template <> struct is_named< Rcpp::Argument > : public true_type {}; |
67 | 67 |
|
| 68 | +template <typename... T> struct is_any_named : public false_type {}; |
| 69 | +template <typename T> struct is_any_named<T> : public is_named<T>::type {}; |
68 | 70 |
|
69 | | -#if defined(HAS_VARIADIC_TEMPLATES) |
70 | | - template <typename... T> struct is_any_named : public false_type {}; |
71 | | - template <typename T> struct is_any_named<T> : public is_named<T>::type {}; |
72 | | - |
73 | | - template <typename T, typename... TArgs> |
74 | | - struct is_any_named<T, TArgs...> |
75 | | - : public std::conditional< |
76 | | - is_any_named<T>::value, |
77 | | - std::true_type, |
78 | | - is_any_named<TArgs...>>::type {}; |
79 | | -#endif |
| 71 | +template <typename T, typename... TArgs> |
| 72 | +struct is_any_named<T, TArgs...> |
| 73 | + : public std::conditional< |
| 74 | + is_any_named<T>::value, |
| 75 | + std::true_type, |
| 76 | + is_any_named<TArgs...>>::type {}; |
80 | 77 |
|
81 | 78 | } // namespace traits |
82 | 79 | } // namespace Rcpp |
|
0 commit comments