gcc/libstdc++-v3/include/std/system_error

340 lines
8.9 KiB
Plaintext
Raw Normal View History

system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
// <system_error> -*- C++ -*-
// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
/** @file system_error
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
* This is a Standard C++ Library header.
*/
#ifndef _GLIBCXX_SYSTEM_ERROR
#define _GLIBCXX_SYSTEM_ERROR 1
#pragma GCC system_header
#ifndef __GXX_EXPERIMENTAL_CXX0X__
# include <c++0x_warning.h>
#else
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
#include <bits/c++config.h>
#include <bits/error_constants.h>
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
#include <iosfwd>
#include <stdexcept>
_GLIBCXX_BEGIN_NAMESPACE(std)
class error_code;
class error_condition;
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
class error_category;
class system_error;
/// is_error_code_enum
template<typename _Tp>
struct is_error_code_enum : public false_type { };
/// is_error_condition_enum
template<typename _Tp>
struct is_error_condition_enum : public false_type { };
template<>
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
struct is_error_condition_enum<errc>
: public true_type { };
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
run_doxygen: Remove html_output_dir. 2008-03-25 Benjamin Kosnik <bkoz@redhat.com> * scripts/run_doxygen: Remove html_output_dir. Downgrade to Doxygen 1.5.1. * doc/doxygen/style.css: Delete. * doc/doxygen/user.cfg.in: Regenerate with Doxygen 1.5.1. (INPUT): Update. (PREDEFINED): Update. (HTML_OUTPUT): Remove html_output_dir, use html. (HTML_STYLESHEET): Remove style.css. * doc/doxygen/tables.html: Remove style.css use. * doc/doxygen/mainpage.html: Nested lists for Namespaces and Classes. * doc/doxygen/doxygroups.cc: Namespace edits. * doc/doxygen/Intro.3: Correct typo. * doc/xml/api.xml: Add gcc-4.3 links. * doc/html/api.html: Regenerate. * include/debug/debug.h: Document namepaces here. * include/parallel/base.h: Same. * include/ext/typelist.h: Same. * include/ext/pb_ds/tag_and_trait.hpp: Same. * include/tr1_impl/random: Adjust line break. * include/tr1_impl/unordered_map: Correct and or add markup. * include/tr1_impl/boost_shared_ptr.h: Correct and or add markup. * include/tr1_impl/functional_hash.h: Same. * include/tr1_impl/cmath: Same. * include/tr1_impl/functional: Same. * include/tr1_impl/unordered_set: Same. * include/tr1_impl/complex: Same. * include/tr1_impl/type_traits: Same. * include/tr1_impl/regex: Same. * include/tr1_impl/array: Same. * include/std/tuple: Same. * include/std/date_time: Same. * include/std/system_error: Same. * include/std/type_traits: Same. * include/ext/enc_filebuf.h: Same. * include/ext/throw_allocator.h: Same. * include/ext/pool_allocator.h: Same. * include/ext/bitmap_allocator.h: Same. * include/ext/concurrence.h: Same. * include/ext/codecvt_specializations.h: Same. * include/ext/stdio_sync_filebuf.h: Same. * include/ext/array_allocator.h: Same. * include/ext/mt_allocator.h: Same. * include/bits/locale_classes.h: Same. * include/bits/locale_facets.h: Same. * include/bits/codecvt.h: Same. * include/bits/char_traits.h: Same. * include/bits/allocator.h: Same. * include/bits/locale_facets_nonio.h: Same. * include/tr1/poly_laguerre.tcc: Same. * include/tr1/riemann_zeta.tcc: Same. * include/tr1/beta_function.tcc: Same. * include/tr1/tuple: Same. * include/tr1/exp_integral.tcc: Same. * include/tr1/gamma.tcc: Same. * include/tr1/hypergeometric.tcc: Same. * include/tr1/modified_bessel_func.tcc: Same. * include/tr1/legendre_function.tcc: Same. * include/tr1/type_traits: Same. * include/tr1/special_function_util.h: Same. * include/tr1/bessel_function.tcc: Same. * include/tr1/cmath: Same. * include/tr1/poly_hermite.tcc: Same. * include/tr1/ell_integral.tcc: Same. * config/abi/compatibility.h: Adjust file name. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust line numbers. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. From-SVN: r133544
2008-03-26 07:27:35 +01:00
/// error_category
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
class error_category
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
{
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
protected:
error_category() = default;
public:
virtual ~error_category() { }
error_category(const error_category&) = delete;
error_category& operator=(const error_category&) = delete;
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
virtual const char*
name() const = 0;
virtual string
message(int) const = 0;
virtual error_condition
default_error_condition(int __i) const;
virtual bool
equivalent(int __i, const error_condition& __cond) const;
virtual bool
equivalent(const error_code& __code, int __i) const;
bool
operator<(const error_category& __other) const
{ return less<const error_category*>()(this, &__other); }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
bool
operator==(const error_category& __other) const
{ return this == &__other; }
bool
operator!=(const error_category& __other) const
{ return this != &__other; }
};
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
// DR 890.
condition_variable.cc (condition_variable, [...]): Mark throw() * src/condition_variable.cc (condition_variable, condition_variable_any constructors): Mark throw() * src/hash.cc (operator() for long double, string, and wstring): Mark throw (). * src/strstream.cc (strstreambuf constructors, freeze, str, pcount, _M_setup, rdbuf, str): Mark throw (). * src/chrono.cc (new): Mark throw (). * include/std/system_error (system_category, generic_category): Mark throw () and const. * include/std/chrono (now): Mark throw (). * include/std/condition_variable (condition_variable, ~condition_variable, condition_variable_any, ~condition_variable_any): Mark throw (). * include/std/mutex (mutex): Mark throw (). * include/bits/stl_list.h (swap, transfer, reverse, hook, unhook): Mark throw. * include/bits/functional_hash.h (operator() on size_t): Mark pure and throw (). * include/bits/locale_facets.tcc (__verify_grouping): Mark pure. * include/bits/locale_classes.h (_S_initialize_once, _S_clone_c_locale): Mark throw (). (_S_get_c_name): Mark const and throw (). (_M_id, _M_compare, _M_transform, _M_compare, _M_transform): Mark throw (). * include/bits/locale_facets.h (__convert_to_v explicit instances): Mark throw (). (_M_convert_to_wmask, _M_initialize_ctype, _S_format_float): Mark throw (). * include/bits/ios_base.h (_M_dispose_callbacks, _M_init, imbue, ios_base): Mark throw () * include/bits/locale_facets_nonio.h (_M_put): Mark throw. * include/backward/strstream (strstreambuf constructors): Mark throw (). (str, freeze, _M_setupf): Mark throw (). (pcount): Mark pure and throw (). (rdbuf): Mark const and throw (). From-SVN: r146328
2009-04-18 23:19:18 +02:00
_GLIBCXX_CONST const error_category& system_category() throw ();
_GLIBCXX_CONST const error_category& generic_category() throw ();
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
error_code make_error_code(errc);
run_doxygen: Remove html_output_dir. 2008-03-25 Benjamin Kosnik <bkoz@redhat.com> * scripts/run_doxygen: Remove html_output_dir. Downgrade to Doxygen 1.5.1. * doc/doxygen/style.css: Delete. * doc/doxygen/user.cfg.in: Regenerate with Doxygen 1.5.1. (INPUT): Update. (PREDEFINED): Update. (HTML_OUTPUT): Remove html_output_dir, use html. (HTML_STYLESHEET): Remove style.css. * doc/doxygen/tables.html: Remove style.css use. * doc/doxygen/mainpage.html: Nested lists for Namespaces and Classes. * doc/doxygen/doxygroups.cc: Namespace edits. * doc/doxygen/Intro.3: Correct typo. * doc/xml/api.xml: Add gcc-4.3 links. * doc/html/api.html: Regenerate. * include/debug/debug.h: Document namepaces here. * include/parallel/base.h: Same. * include/ext/typelist.h: Same. * include/ext/pb_ds/tag_and_trait.hpp: Same. * include/tr1_impl/random: Adjust line break. * include/tr1_impl/unordered_map: Correct and or add markup. * include/tr1_impl/boost_shared_ptr.h: Correct and or add markup. * include/tr1_impl/functional_hash.h: Same. * include/tr1_impl/cmath: Same. * include/tr1_impl/functional: Same. * include/tr1_impl/unordered_set: Same. * include/tr1_impl/complex: Same. * include/tr1_impl/type_traits: Same. * include/tr1_impl/regex: Same. * include/tr1_impl/array: Same. * include/std/tuple: Same. * include/std/date_time: Same. * include/std/system_error: Same. * include/std/type_traits: Same. * include/ext/enc_filebuf.h: Same. * include/ext/throw_allocator.h: Same. * include/ext/pool_allocator.h: Same. * include/ext/bitmap_allocator.h: Same. * include/ext/concurrence.h: Same. * include/ext/codecvt_specializations.h: Same. * include/ext/stdio_sync_filebuf.h: Same. * include/ext/array_allocator.h: Same. * include/ext/mt_allocator.h: Same. * include/bits/locale_classes.h: Same. * include/bits/locale_facets.h: Same. * include/bits/codecvt.h: Same. * include/bits/char_traits.h: Same. * include/bits/allocator.h: Same. * include/bits/locale_facets_nonio.h: Same. * include/tr1/poly_laguerre.tcc: Same. * include/tr1/riemann_zeta.tcc: Same. * include/tr1/beta_function.tcc: Same. * include/tr1/tuple: Same. * include/tr1/exp_integral.tcc: Same. * include/tr1/gamma.tcc: Same. * include/tr1/hypergeometric.tcc: Same. * include/tr1/modified_bessel_func.tcc: Same. * include/tr1/legendre_function.tcc: Same. * include/tr1/type_traits: Same. * include/tr1/special_function_util.h: Same. * include/tr1/bessel_function.tcc: Same. * include/tr1/cmath: Same. * include/tr1/poly_hermite.tcc: Same. * include/tr1/ell_integral.tcc: Same. * config/abi/compatibility.h: Adjust file name. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust line numbers. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. From-SVN: r133544
2008-03-26 07:27:35 +01:00
/// error_code
// Implementation-specific error identification
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
struct error_code
{
error_code()
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
: _M_value(0), _M_cat(&system_category()) { }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
error_code(int __v, const error_category& __cat)
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
: _M_value(__v), _M_cat(&__cat) { }
template<typename _ErrorCodeEnum>
error_code(_ErrorCodeEnum __e,
typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value>::type* = 0)
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
{ *this = make_error_code(__e); }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
void
assign(int __v, const error_category& __cat)
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
{
_M_value = __v;
_M_cat = &__cat;
}
void
clear()
{ assign(0, system_category()); }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
// DR 804.
template<typename _ErrorCodeEnum>
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value,
error_code&>::type
operator=(_ErrorCodeEnum __e)
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
{ return *this = make_error_code(__e); }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
int
value() const { return _M_value; }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
const error_category&
category() const { return *_M_cat; }
error_condition
default_error_condition() const;
string
message() const
{ return category().message(value()); }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
explicit operator bool() const
{ return _M_value != 0 ? true : false; }
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
// DR 804.
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
private:
int _M_value;
const error_category* _M_cat;
};
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
// 19.4.2.6 non-member functions
inline error_code
make_error_code(errc __e)
{ return error_code(static_cast<int>(__e), generic_category()); }
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator<(const error_code& __lhs, const error_code& __rhs)
{
return (__lhs.category() < __rhs.category()
|| (__lhs.category() == __rhs.category()
&& __lhs.value() < __rhs.value()));
}
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
{ return (__os << __e.category().name() << ':' << __e.value()); }
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
error_condition make_error_condition(errc);
/// error_condition
// Portable error identification
struct error_condition
{
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
error_condition()
: _M_value(0), _M_cat(&generic_category()) { }
error_condition(int __v, const error_category& __cat)
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
: _M_value(__v), _M_cat(&__cat) { }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
template<typename _ErrorConditionEnum>
error_condition(_ErrorConditionEnum __e,
typename enable_if<is_error_condition_enum
<_ErrorConditionEnum>::value>::type* = 0)
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
{ *this = make_error_condition(__e); }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
void
assign(int __v, const error_category& __cat)
{
_M_value = __v;
_M_cat = &__cat;
}
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
// DR 804.
template<typename _ErrorConditionEnum>
typename enable_if<is_error_condition_enum
<_ErrorConditionEnum>::value, error_condition&>::type
operator=(_ErrorConditionEnum __e)
re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist) 2009-04-25 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39880 PR libstdc++/39881 PR libstdc++/39882 * include/std/system_error (is_error_code_enum<errc>): Remove. (error_condition<>::error_condition(_ErrorCodeEnum,) error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition. (error_code<>::error_code(_ErrorCodeEnum,), error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code. * testsuite/19_diagnostics/system_error/39880.cc: New. * testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Likewise. * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise. * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Adjust. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r146780
2009-04-25 21:00:52 +02:00
{ return *this = make_error_condition(__e); }
void
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
clear()
{ assign(0, generic_category()); }
// 19.4.3.4 observers
int
value() const { return _M_value; }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
const error_category&
category() const { return *_M_cat; }
string
message() const
{ return category().message(value()); }
explicit operator bool() const
{ return _M_value != 0 ? true : false; }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
// DR 804.
private:
int _M_value;
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
const error_category* _M_cat;
};
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
// 19.4.3.6 non-member functions
inline error_condition
make_error_condition(errc __e)
{ return error_condition(static_cast<int>(__e), generic_category()); }
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
inline bool
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
operator<(const error_condition& __lhs, const error_condition& __rhs)
{
return (__lhs.category() < __rhs.category()
|| (__lhs.category() == __rhs.category()
&& __lhs.value() < __rhs.value()));
}
// 19.4.4 Comparison operators
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator==(const error_code& __lhs, const error_code& __rhs)
{ return (__lhs.category() == __rhs.category()
&& __lhs.value() == __rhs.value()); }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator==(const error_code& __lhs, const error_condition& __rhs)
{
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
return (__lhs.category().equivalent(__lhs.value(), __rhs)
|| __rhs.category().equivalent(__lhs, __rhs.value()));
}
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator==(const error_condition& __lhs, const error_code& __rhs)
{
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
return (__rhs.category().equivalent(__rhs.value(), __lhs)
|| __lhs.category().equivalent(__rhs, __lhs.value()));
}
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator==(const error_condition& __lhs, const error_condition& __rhs)
{
return (__lhs.category() == __rhs.category()
&& __lhs.value() == __rhs.value());
}
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator!=(const error_code& __lhs, const error_code& __rhs)
{ return !(__lhs == __rhs); }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator!=(const error_code& __lhs, const error_condition& __rhs)
{ return !(__lhs == __rhs); }
system_error (native_category): Remove. 2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
2008-10-10 14:39:01 +02:00
inline bool
operator!=(const error_condition& __lhs, const error_code& __rhs)
{ return !(__lhs == __rhs); }
inline bool
operator!=(const error_condition& __lhs, const error_condition& __rhs)
{ return !(__lhs == __rhs); }
user.cfg.in: Tweaks. 2009-02-20 Benjamin Kosnik <bkoz@redhat.com> * doc/doxygen/user.cfg.in: Tweaks. * doc/doxygen/doxygroups.cc: Prefer markup that can be elsewhere, be elsewhere. * include/tr1_impl/unordered_map: Just use most specialized container module. * include/tr1_impl/unordered_set: Same. * include/tr1_impl/array: Same. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_queue.h: Same. * include/bits/stl_set.h: Same. * include/bits/stl_stack.h: Same. * include/bits/forward_list.h: Same. * include/bits/basic_string.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_vector.h: Same. * include/bits/stl_deque.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/stl_bvector.h: Same. * include/backward/binders.h: Change binder module to binders. * include/std/complex: Add complex_numers module. * include/tr1_impl/complex: Same. * include/std/valarray: Add numeric_arrays module. * include/bits/gslice_array.h: Same. * include/bits/gslice.h: Same. * include/bits/mask_array.h: Same. * include/bits/slice_array.h: Same. * include/bits/indirect_array.h: Same. * include/bits/allocator.h: Add allocators module. * include/ext/throw_allocator.h * include/ext/pool_allocator.h * include/ext/bitmap_allocator.h * include/ext/new_allocator.h * include/ext/malloc_allocator.h * include/ext/array_allocator.h * include/ext/mt_allocator.h * include/ext/debug_allocator.h * include/ext/extptr_allocator.h * include/tr1_impl/functional: Move namespace markup here. * include/tr1_impl/regex: Same. * include/tr1_impl/type_traits: Add metaprogramming module. * include/std/type_traits: Same. * include/std/memory: Add memory module. * include/std/ratio: Add ratio module. * include/std/chrono: Move namespace markup here, add time module. * include/std/thread: Move namespace markup here, add concurrency module. * include/std/mutex: Use concurrency module. * include/std/condition_variable: Same. * include/bits/ios_base.h: Refine io module. * include/bits/basic_ios.h: Same. * include/std/fstream: Same. * include/std/istream: Same. * include/std/ostream: Same. * include/std/sstream: Same. * include/ext/vstring.h: Correct parameter markup. * include/bits/shared_ptr.h: Add pointer_abstractions module. * include/bits/unique_ptr.h: Same. * include/bits/algorithmfwd.h: Add mutating_algorithms, non_mutating_algorithms, sorting_algorithms. Adjust nesting. * include/bits/stl_heap.h: Add markup for new groupings. * include/bits/stl_algobase.h: Same. * include/bits/stl_algo.h: Same. * include/c_compatibility/stdatomic.h: Add atomics module. * include/c_global/cstdatomic: Same. * libsupc++/exception: Add exceptions module. * libsupc++/typeinfo: Same. * libsupc++/new: Same. * libsupc++/exception_ptr.h: Same. * include/std/system_error: Same. * include/std/stdexcept: Same. * libsupc++/cxxabi.h: Move doxygroups.cc markup here. * libsupc++/cxxabi-forced.h: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Fix up line numbers. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc: Same. * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc: Same. * testsuite/30_threads/mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/mutex/cons/copy_neg.cc: Same. * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Same. * testsuite/30_threads/thread/cons/assign_neg.cc: Same. * testsuite/30_threads/thread/cons/copy_neg.cc: Same. * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Same. * testsuite/30_threads/condition_variable/cons/assign_neg.cc: Same. * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Same. * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/20_util/duration/cons/1_neg.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same. * testsuite/20_util/unique_ptr/assign/assign.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. * testsuite/20_util/ratio/cons/cons_overflow.cc: Same. * testsuite/20_util/ratio/operations/ops_overflow.cc: Same. From-SVN: r144343
2009-02-21 01:45:21 +01:00
/**
* @brief Thrown to indicate error code of underlying system.
*
* @ingroup exceptions
*/
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
class system_error : public std::runtime_error
{
private:
error_code _M_code;
public:
system_error(error_code __ec = error_code())
: runtime_error(""), _M_code(__ec) { }
system_error(error_code __ec, const string& __what)
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
: runtime_error(__what), _M_code(__ec) { }
system_error (is_error_code_enum): Specialize for errc. 2008-10-22 Chris Fairles <cfairles@gcc.gnu.org> * include/std/system_error (is_error_code_enum): Specialize for errc. (error_category::error_category): Defaulted and protected. (error_category::~error_category): New, virtual. (error_category::error_category(const error_category&), error_category::operator=(const error_category&)): Deleted. (get_system_category, get_posix_category): Remove (DR 890). (system_category): External linkage (DR 890). (posix_category): Remove. (generic_category): Add. External linkage (DR 890). (error_code::error_code<>(_ErrorCodeEnum)): Use generic_category. (error_code::clear, error_code::operator=<>(_ErrorCodeEnum)): Forward to error_code::assign, use generic_category. (error_condition::error_condition, error_condition::error_condition<>(_ErrorConditionEnum)): Use generic_category. (error_condition::clear, error_condition::operator=<>(_ErrorConditionEnum)): Forward to error_code::assign, use generic_category. (make_error_code, make_error_condition): Define in namespace std. * include/std/mutex (unique_lock<>::lock, unique_lock<>::try_lock, unique_lock<>::try_lock_until<>(duration), unique_lock<>::try_lock_for<>(duration)): Replace posix_error with errc. * src/system_error.cc (system_error_category, generic_error_category): New. (gnu_error_category): Remove. (get_system_category, get_posix_category): Remove (DR 890). (system_category, generic_category): Define. * src/functexcept.cc (__throw_system_error): Use generic_category. * config/abi/pre/gnu.ver: Export system_category and generic_category, remove get_system_category and get_generic_category (DR 890). * config/os/generic/error_constants.h (posix_errno): Rename to errc, use enum class type. Fix spelling. * config/os/mingw32/error_constants.h (posix_errno): Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Use errc and generic_category. * testsuite/19_diagnostics/error_code/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Update dg-error line numbers. * testsuite/19_diagnostics/error_condition/cons/1.cc: Use generic_category. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Use errc. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: New. * testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: Remove using tests since errc is not a namespace. * testsuite/19_diagnostics/system_error/cons-1.cc: Use errc. * testsuite/19_diagnostics/system_error/what-4.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc: Likewise. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. From-SVN: r141297
2008-10-22 17:27:44 +02:00
/*
* TODO: Add const char* ctors to all exceptions.
*
* system_error(error_code __ec, const char* __what)
* : runtime_error(__what), _M_code(__ec) { }
*
* system_error(int __v, const error_category& __ecat, const char* __what)
* : runtime_error(__what), _M_code(error_code(__v, __ecat)) { }
*/
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
system_error(int __v, const error_category& __ecat)
: runtime_error(""), _M_code(error_code(__v, __ecat)) { }
system_error(int __v, const error_category& __ecat, const string& __what)
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
: runtime_error(__what), _M_code(error_code(__v, __ecat)) { }
virtual ~system_error() throw();
const error_code&
code() const throw() { return _M_code; }
};
_GLIBCXX_END_NAMESPACE
#endif // __GXX_EXPERIMENTAL_CXX0X__
#endif // _GLIBCXX_SYSTEM_ERROR
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00