forked from OSchip/llvm-project
Implement LWG#2855 - made easy by previous refactoring
llvm-svn: 300218
This commit is contained in:
parent
72f8257cba
commit
5948e39297
|
@ -243,8 +243,8 @@ throw_with_nested (_Tp& __t)
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
{
|
{
|
||||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||||
typedef typename remove_reference<_Tp>::type _Up;
|
typedef typename decay<_Tp>::type _Up;
|
||||||
// static_assert( is_copy_constructible<_Up>::value, "");
|
static_assert( is_copy_constructible<_Up>::value, "type thrown must be CopyConstructible");
|
||||||
__throw_with_nested<_Tp, _Up,
|
__throw_with_nested<_Tp, _Up,
|
||||||
is_class<_Up>::value &&
|
is_class<_Up>::value &&
|
||||||
!is_base_of<nested_exception, _Up>::value &&
|
!is_base_of<nested_exception, _Up>::value &&
|
||||||
|
|
|
@ -107,6 +107,16 @@ int main()
|
||||||
assert(i == 7);
|
assert(i == 7);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
std::throw_with_nested("String literal");
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
catch (const char * s)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
#if TEST_STD_VER > 11
|
#if TEST_STD_VER > 11
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
@ -463,7 +463,7 @@
|
||||||
<tr><td><a href="http://wg21.link/LWG2842">2842</a></td><td>in_place_t check for optional::optional(U&&) should decay U</td><td>Kona</td><td>Complete</td></tr>
|
<tr><td><a href="http://wg21.link/LWG2842">2842</a></td><td>in_place_t check for optional::optional(U&&) should decay U</td><td>Kona</td><td>Complete</td></tr>
|
||||||
<tr><td><a href="http://wg21.link/LWG2850">2850</a></td><td>std::function move constructor does unnecessary work</td><td>Kona</td><td></td></tr>
|
<tr><td><a href="http://wg21.link/LWG2850">2850</a></td><td>std::function move constructor does unnecessary work</td><td>Kona</td><td></td></tr>
|
||||||
<tr><td><a href="http://wg21.link/LWG2853">2853</a></td><td>Possible inconsistency in specification of erase in [vector.modifiers]</td><td>Kona</td><td></td></tr>
|
<tr><td><a href="http://wg21.link/LWG2853">2853</a></td><td>Possible inconsistency in specification of erase in [vector.modifiers]</td><td>Kona</td><td></td></tr>
|
||||||
<tr><td><a href="http://wg21.link/LWG2855">2855</a></td><td>std::throw_with_nested("string_literal")</td><td>Kona</td><td></td></tr>
|
<tr><td><a href="http://wg21.link/LWG2855">2855</a></td><td>std::throw_with_nested("string_literal")</td><td>Kona</td><td>Complete</td></tr>
|
||||||
<tr><td><a href="http://wg21.link/LWG2857">2857</a></td><td>{variant,optional,any}::emplace should return the constructed value</td><td>Kona</td><td></td></tr>
|
<tr><td><a href="http://wg21.link/LWG2857">2857</a></td><td>{variant,optional,any}::emplace should return the constructed value</td><td>Kona</td><td></td></tr>
|
||||||
<tr><td><a href="http://wg21.link/LWG2861">2861</a></td><td>basic_string should require that charT match traits::char_type</td><td>Kona</td><td>Complete</td></tr>
|
<tr><td><a href="http://wg21.link/LWG2861">2861</a></td><td>basic_string should require that charT match traits::char_type</td><td>Kona</td><td>Complete</td></tr>
|
||||||
<tr><td><a href="http://wg21.link/LWG2866">2866</a></td><td>Incorrect derived classes constraints</td><td>Kona</td><td></td></tr>
|
<tr><td><a href="http://wg21.link/LWG2866">2866</a></td><td>Incorrect derived classes constraints</td><td>Kona</td><td></td></tr>
|
||||||
|
@ -489,7 +489,7 @@
|
||||||
<!-- <tr><td></td><td></td><td></td><td></td></tr> -->
|
<!-- <tr><td></td><td></td><td></td><td></td></tr> -->
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>Last Updated: 11-Apr-2017</p>
|
<p>Last Updated: 13-Apr-2017</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue