Commit fcf0430b by Edward Smith-Rowland Committed by Edward Smith-Rowland

PR56193 - Wrong test operator for basic_ios in C++11.

From-SVN: r195849
parent 3e508131
2013-02-06 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/bits/basic_ios.h: Replace operator void*() const
with explicit operator bool() const in C++11 and greater.
* testsuite/27_io/basic_ios/pr56193.cc: New file.
2013-02-04 Dodji Seketeli <dodji@redhat.com>
Add missing explicit instantiation for std::lower_bound template
......
......@@ -112,8 +112,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* This allows you to write constructs such as
* <code>if (!a_stream) ...</code> and <code>while (a_stream) ...</code>
*/
#if __cplusplus >= 201103L
explicit operator bool() const
{ return !this->fail(); }
#else
operator void*() const
{ return this->fail() ? 0 : const_cast<basic_ios*>(this); }
#endif
bool
operator!() const
......
// { dg-do compile }
// { dg-options "-std=gnu++11" }
// Copyright (C) 2013 Free Software Foundation, Inc.
#include <iostream>
// PR libstdc++/56193
int
test01()
{
std::cout << std::cout; // { dg-error "cannot bind" }
}
// { dg-error "initializing argument" "" { target *-*-* } 602 }
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