Add C++11 isms to tr2/dynamic_bitset and tr2/bool_set.
authorEdward Smith-Rowland <3dw4rd@verizon.net>
Tue, 26 Jun 2012 00:14:00 +0000 (00:14 +0000)
committerEdward Smith-Rowland <emsr@gcc.gnu.org>
Tue, 26 Jun 2012 00:14:00 +0000 (00:14 +0000)
From-SVN: r188967

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr2/bool_set
libstdc++-v3/include/tr2/dynamic_bitset

index b878b8d31fc2f06e2b6fb6fa03128a985364903a..78ba408ad019753ed79b2606ee6175d14523f4a0 100644 (file)
@@ -1,3 +1,13 @@
+2012-06-25  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       * include/tr2/bool_set (count, size, num_blocks, empty, max_size):
+       Add noexcept.
+
+2012-06-25  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       * include/tr2/dynamic_bitset (count, size, num_blocks, empty, max_size):
+       Add noexcept.
+
 2012-06-25  Benjamin Kosnik  <bkoz@redhat.com>
 
        * doc/doxygen/user.cfg.in: Change COMPACT_LATEX to NO.
index f577ed0c76c637a638c38a77a0748a97d3076d08..61fd1c83e9689e00457cb5d4437b31bf104cc937 100644 (file)
@@ -1,6 +1,6 @@
 // TR2 <bool_set> -*- C++ -*-
 
-// Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2011, 2012 Free Software Foundation, Inc.
 //
 // 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
@@ -56,10 +56,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   public:
 
     ///  Default constructor.
-    bool_set() : _M_b(_S_false) { }
+    constexpr bool_set() : _M_b(_S_false) { }
 
     ///  Constructor from bool.
-    bool_set(bool __t) : _M_b(_Bool_set_val(__t)) { }
+    constexpr bool_set(bool __t) : _M_b(_Bool_set_val(__t)) { }
 
     // I'm not sure about this.
     bool contains(bool_set __b) const
index 4c06b84c2a5014cfe9ee0c38a415c67ce42660c2..5ca56470bd2e14c0f3d76cbfb8afec21661fb4ae 100644 (file)
@@ -1,6 +1,6 @@
 // TR2 <dynamic_bitset> -*- C++ -*-
 
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 //
 // 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
@@ -146,19 +146,19 @@ public:
       { return this->_M_w.get_allocator(); }
 
       static size_type
-      _S_whichword(size_type __pos)
+      _S_whichword(size_type __pos) noexcept
       { return __pos / _S_bits_per_block; }
 
       static size_type
-      _S_whichbyte(size_type __pos)
+      _S_whichbyte(size_type __pos) noexcept
       { return (__pos % _S_bits_per_block) / __CHAR_BIT__; }
 
       static size_type
-      _S_whichbit(size_type __pos)
+      _S_whichbit(size_type __pos) noexcept
       { return __pos % _S_bits_per_block; }
 
       static block_type
-      _S_maskbit(size_type __pos)
+      _S_maskbit(size_type __pos) noexcept
       { return (static_cast<block_type>(1)) << _S_whichbit(__pos); }
 
       block_type&
@@ -333,7 +333,7 @@ public:
       }
 
       size_type
-      _M_size() const
+      _M_size() const noexcept
       { return this->_M_w.size(); }
 
       unsigned long
@@ -1141,28 +1141,29 @@ public:
 
       /// Returns the number of bits which are set.
       size_type
-      count() const
+      count() const noexcept
       { return this->_M_do_count(); }
 
       /// Returns the total number of bits.
       size_type
-      size() const
+      size() const noexcept
       { return this->_M_Nb; }
 
       /// Returns the total number of blocks.
-      size_type num_blocks() const
+      size_type
+      num_blocks() const noexcept
       { return this->_M_size(); }
 
       /// Returns true if the dynamic_bitset is empty.
       bool
-      empty() const
+      empty() const noexcept
       { return (this->_M_Nb == 0); }
 
       /// Returns the maximum size of a dynamic_bitset object having the same
       /// type as *this.
       /// The real answer is max() * bits_per_block but is likely to overflow.
-      /*constexpr*/ size_type
-      max_size() const
+      constexpr size_type
+      max_size() noexcept
       { return std::numeric_limits<block_type>::max(); }
 
       /**