Merge branch 'circulator-gcc6-fix' into 'master'

fix CirculatorT type-pun warning on GCC6

fixes #28

See merge request !78
This commit is contained in:
Jan Möbius
2016-08-11 12:12:47 +02:00

View File

@@ -314,13 +314,15 @@ class GenericCirculatorT : protected GenericCirculatorBaseT<Mesh> {
/// Standard dereferencing operator. /// Standard dereferencing operator.
value_type operator*() const { value_type operator*() const {
// We can't use this due to a GCC6 compiler bug
const GenericCirculatorBaseT<Mesh>* self = this;
#ifndef NDEBUG #ifndef NDEBUG
assert(this->heh_.is_valid()); assert(this->heh_.is_valid());
value_type res = (this->*Handle2Value)(); value_type res = (self->*Handle2Value)();
assert(res.is_valid()); assert(res.is_valid());
return res; return res;
#else #else
return (this->*Handle2Value)(); return (self->*Handle2Value)();
#endif #endif
} }
@@ -498,13 +500,15 @@ class GenericCirculatorT_DEPRECATED : protected GenericCirculatorBaseT<Mesh> {
/// Standard dereferencing operator. /// Standard dereferencing operator.
value_type operator*() const { value_type operator*() const {
// We can't use this due to a GCC6 compiler bug
const GenericCirculatorBaseT<Mesh>* self = this;
#ifndef NDEBUG #ifndef NDEBUG
assert(this->heh_.is_valid()); assert(this->heh_.is_valid());
value_type res = (this->*Handle2Value)(); value_type res = (self->*Handle2Value)();
assert(res.is_valid()); assert(res.is_valid());
return res; return res;
#else #else
return (this->*Handle2Value)(); return (self->*Handle2Value)();
#endif #endif
} }