diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-03-21 15:45:20 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-03-21 15:46:37 +0900 |
commit | 733b5d5ae2c5d625211e2985ac25728ac3f54883 (patch) | |
tree | a5b214744b256f07e1dc2bd7273035a7808c659f /boost/dynamic_bitset | |
parent | 08c1e93fa36a49f49325a07fe91ff92c964c2b6c (diff) | |
download | boost-733b5d5ae2c5d625211e2985ac25728ac3f54883.tar.gz boost-733b5d5ae2c5d625211e2985ac25728ac3f54883.tar.bz2 boost-733b5d5ae2c5d625211e2985ac25728ac3f54883.zip |
Imported Upstream version 1.58.0upstream/1.58.0
Change-Id: If0072143aa26874812e0db6872e1efb10a3e5e94
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/dynamic_bitset')
-rw-r--r-- | boost/dynamic_bitset/dynamic_bitset.hpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/boost/dynamic_bitset/dynamic_bitset.hpp b/boost/dynamic_bitset/dynamic_bitset.hpp index 4d6011c2e9..f6002d84e8 100644 --- a/boost/dynamic_bitset/dynamic_bitset.hpp +++ b/boost/dynamic_bitset/dynamic_bitset.hpp @@ -6,6 +6,7 @@ // // Copyright (c) 2014 Glen Joseph Fernandes // glenfe at live dot com +// Copyright (c) 2014 Riccardo Marcangelo // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -227,6 +228,7 @@ public: void resize(size_type num_bits, bool value = false); void clear(); void push_back(bool bit); + void pop_back(); void append(Block block); template <typename BlockInputIterator> @@ -748,6 +750,22 @@ push_back(bool bit) template <typename Block, typename Allocator> void dynamic_bitset<Block, Allocator>:: +pop_back() +{ + const size_type old_num_blocks = num_blocks(); + const size_type required_blocks = calc_num_blocks(m_num_bits - 1); + + if (required_blocks != old_num_blocks) { + m_bits.pop_back(); + } + + --m_num_bits; + m_zero_unused_bits(); +} + + +template <typename Block, typename Allocator> +void dynamic_bitset<Block, Allocator>:: append(Block value) // strong guarantee { const block_width_type r = count_extra_bits(); |