A fix for users of Boost 1.35.
This commit is contained in:
parent
557c8af9fe
commit
7de6050269
1 changed files with 17 additions and 2 deletions
19
src/value.h
19
src/value.h
|
|
@ -473,7 +473,11 @@ private:
|
||||||
void set_type(type_t new_type) {
|
void set_type(type_t new_type) {
|
||||||
assert(new_type >= VOID && new_type <= POINTER);
|
assert(new_type >= VOID && new_type <= POINTER);
|
||||||
if (new_type == VOID) {
|
if (new_type == VOID) {
|
||||||
|
#if BOOST_VERSION >= 103700
|
||||||
storage.reset();
|
storage.reset();
|
||||||
|
#else
|
||||||
|
storage = intrusive_ptr<storage_t>();
|
||||||
|
#endif
|
||||||
assert(is_null());
|
assert(is_null());
|
||||||
} else {
|
} else {
|
||||||
_clear();
|
_clear();
|
||||||
|
|
@ -826,18 +830,29 @@ public:
|
||||||
assert(! is_null());
|
assert(! is_null());
|
||||||
|
|
||||||
if (! is_sequence()) {
|
if (! is_sequence()) {
|
||||||
|
#if BOOST_VERSION >= 103700
|
||||||
|
storage.reset();
|
||||||
|
#else
|
||||||
|
storage = intrusive_ptr<storage_t>();
|
||||||
|
#endif
|
||||||
storage.reset();
|
storage.reset();
|
||||||
} else {
|
} else {
|
||||||
as_sequence_lval().pop_back();
|
as_sequence_lval().pop_back();
|
||||||
|
|
||||||
const sequence_t& seq(as_sequence());
|
const sequence_t& seq(as_sequence());
|
||||||
std::size_t new_size = seq.size();
|
std::size_t new_size = seq.size();
|
||||||
if (new_size == 0)
|
if (new_size == 0) {
|
||||||
|
#if BOOST_VERSION >= 103700
|
||||||
storage.reset();
|
storage.reset();
|
||||||
else if (new_size == 1)
|
#else
|
||||||
|
storage = intrusive_ptr<storage_t>();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (new_size == 1) {
|
||||||
*this = seq.front();
|
*this = seq.front();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sequence_t::const_iterator begin() const {
|
sequence_t::const_iterator begin() const {
|
||||||
assert(is_sequence());
|
assert(is_sequence());
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue