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.
|
(swap(basic_streambuf&)): Define for C++11.
|
||||||
* testsuite/27_io/basic_streambuf/cons/57394.cc: New.
|
* 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>
|
2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
* acinclude.m4 ([GLIBCXX_ENABLE_C99]): Avoid -Wwrite-strings warning.
|
* acinclude.m4 ([GLIBCXX_ENABLE_C99]): Avoid -Wwrite-strings warning.
|
||||||
|
@ -71,6 +71,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||||||
template<typename _CharT, typename _Traits>
|
template<typename _CharT, typename _Traits>
|
||||||
class basic_filebuf : public basic_streambuf<_CharT, _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:
|
public:
|
||||||
// Types:
|
// Types:
|
||||||
typedef _CharT char_type;
|
typedef _CharT char_type;
|
||||||
|
Loading…
Reference in New Issue
Block a user