mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 23:35:00 +08:00
re PR libstdc++/13860 (Poor error messages on invalid template parameters for basic_filebuf)
PR libstdc++/13860 * include/std/fstream (basic_filebuf): Enforce requirements on traits. From-SVN: r210231
This commit is contained in:
parent
2793eeab54
commit
2735097a55
@ -11,6 +11,9 @@
|
||||
(swap(basic_streambuf&)): Define for C++11.
|
||||
* testsuite/27_io/basic_streambuf/cons/57394.cc: New.
|
||||
|
||||
PR libstdc++/13860
|
||||
* include/std/fstream (basic_filebuf): Enforce requirements on traits.
|
||||
|
||||
2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* acinclude.m4 ([GLIBCXX_ENABLE_C99]): Avoid -Wwrite-strings warning.
|
||||
|
@ -71,6 +71,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
template<typename _CharT, typename _Traits>
|
||||
class basic_filebuf : public basic_streambuf<_CharT, _Traits>
|
||||
{
|
||||
#if __cplusplus >= 201103L
|
||||
template<typename _Tp>
|
||||
using __chk_state = __and_<is_copy_assignable<_Tp>,
|
||||
is_copy_constructible<_Tp>,
|
||||
is_default_constructible<_Tp>>;
|
||||
|
||||
static_assert(__chk_state<typename _Traits::state_type>::value,
|
||||
"state_type must be CopyAssignable, CopyConstructible"
|
||||
" and DefaultConstructible");
|
||||
|
||||
static_assert(is_same<typename _Traits::pos_type,
|
||||
fpos<typename _Traits::state_type>>::value,
|
||||
"pos_type must be fpos<state_type>");
|
||||
#endif
|
||||
public:
|
||||
// Types:
|
||||
typedef _CharT char_type;
|
||||
|
Loading…
Reference in New Issue
Block a user