LWG Issue 2162: mark allocator_traits::maxsize as noexcept
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
83179a788f
commit
08b4f3f99b
@ -90,7 +90,7 @@ struct allocator_traits
|
||||
template <class T>
|
||||
static void destroy(allocator_type& a, T* p);
|
||||
|
||||
static size_type max_size(const allocator_type& a);
|
||||
static size_type max_size(const allocator_type& a); // noexcept in C++14
|
||||
|
||||
static allocator_type
|
||||
select_on_container_copy_construction(const allocator_type& a);
|
||||
@ -1483,7 +1483,7 @@ struct _LIBCPP_TYPE_VIS_ONLY allocator_traits
|
||||
{__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
static size_type max_size(const allocator_type& __a)
|
||||
static size_type max_size(const allocator_type& __a) _NOEXCEPT
|
||||
{return __max_size(__has_max_size<const allocator_type>(), __a);}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
|
@ -12,7 +12,7 @@
|
||||
// template <class Alloc>
|
||||
// struct allocator_traits
|
||||
// {
|
||||
// static size_type max_size(const allocator_type& a);
|
||||
// static size_type max_size(const allocator_type& a) noexcept;
|
||||
// ...
|
||||
// };
|
||||
|
||||
@ -61,4 +61,10 @@ int main()
|
||||
const B<int> b = {};
|
||||
assert(std::allocator_traits<B<int> >::max_size(b) == 100);
|
||||
}
|
||||
#if __cplusplus >= 201103
|
||||
{
|
||||
std::allocator<int> a;
|
||||
static_assert(noexcept(std::allocator_traits<std::allocator<int>>::max_size(a)) == true, "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -148,7 +148,7 @@
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2148">2148</a></td><td>Hashing enums should be supported directly by std::hash</td><td>Bristol</td><td></td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2149">2149</a></td><td>Concerns about 20.8/5</td><td>Bristol</td><td></td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2162">2162</a></td><td>allocator_traits::max_size missing noexcept</td><td>Bristol</td><td></td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2163">2163</a></td><td>nth_element requires inconsistent post-conditions</td><td>Bristol</td><td></td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2163">2163</a></td><td>nth_element requires inconsistent post-conditions</td><td>Bristol</td><td>Complete</td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2169">2169</a></td><td>Missing reset() requirements in unique_ptr specialization</td><td>Bristol</td><td></td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2172">2172</a></td><td>Does atomic_compare_exchange_* accept v == nullptr arguments?</td><td>Bristol</td><td></td></tr>
|
||||
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2080">2080</a></td><td>Specify when once_flag becomes invalid</td><td>Bristol</td><td></td></tr>
|
||||
|
Loading…
x
Reference in New Issue
Block a user