Commit e350134d by Jonathan Wakely Committed by Jonathan Wakely

PR go/83102 relax std::set checks for invocable comparison object

	PR go/83102
	* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
	comparison object pre-C++17.

From-SVN: r255052
parent aaa49b45
2017-11-22 Jonathan Wakely <jwakely@redhat.com>
PR go/83102
* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
comparison object pre-C++17.
2017-11-21 Jonathan Wakely <jwakely@redhat.com> 2017-11-21 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/48101 PR libstdc++/48101
......
...@@ -449,9 +449,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -449,9 +449,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits;
#if __cplusplus >= 201103L #if __cplusplus >= 201103L
static_assert(__is_invocable<const _Compare&, const _Key&, const _Key&>{}, static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{},
"comparison object must be invocable with two arguments of key type"); "comparison object must be invocable with two arguments of key type");
#endif # if __cplusplus >= 201703L
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 2542. Missing const requirements for associative containers
static_assert(is_invocable_v<const _Compare&, const _Key&, const _Key&>,
"comparison object must be invocable as const");
# endif // C++17
#endif // C++11
protected: protected:
typedef _Rb_tree_node_base* _Base_ptr; typedef _Rb_tree_node_base* _Base_ptr;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment