On 09/08/16 18:00 +0300, Ville Voutilainen wrote:
_Args&&...> = false>
diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility
index 0c03644..e1a523f 100644
--- a/libstdc++-v3/include/std/utility
+++ b/libstdc++-v3/include/std/utility
@@ -356,6 +356,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template <size_t _Idx>
in_place_tag in_place(__in_place_index<_Idx>*) {terminate();}
+ template<typename>
+ struct __is_in_place_impl : false_type
+ { };
+
+ template<typename _Tp>
+ struct __is_in_place_impl<in_place_type_t<_Tp>> : true_type
Indentation nit.
+ { };
+
+ template<typename _Tp>
+ struct __is_in_place
+ : public __is_in_place_impl<std::remove_cv_t<std::remove_reference_t<_Tp>>>
Any reason not to use decay_t here? In all the cases where decay is
different to stripping references and cv-qualifiers the result will be
false either way.
I wouldn't have bothered with the std:: qualification either, but it's
fine as it is.
OK for trunk, thanks.