--- adjacency_list.hpp.old 2015-04-02 21:08:05.231043849 +0200 +++ /usr/include/boost/graph/detail/adjacency_list.hpp 2015-04-02 21:08:40.537161428 +0200 @@ -296,21 +296,21 @@ namespace boost { inline stored_edge_property(Vertex target, const Property& p = Property()) : stored_edge(target), m_property(new Property(p)) { } -#if defined(BOOST_MSVC) || (defined(BOOST_GCC) && (BOOST_GCC / 100) < 410) - stored_edge_property(self&& x) : Base(static_cast< Base const& >(x)) { - m_property.swap(x.m_property); - } stored_edge_property(self const& x) : Base(static_cast< Base const& >(x)) { m_property.swap(const_cast(x).m_property); } - self& operator=(self&& x) { + self& operator=(self const& x) { Base::operator=(static_cast< Base const& >(x)); - m_property = std::move(x.m_property); + m_property = std::move(const_cast(x).m_property); return *this; } - self& operator=(self const& x) { +#if defined(BOOST_MSVC) || (defined(BOOST_GCC) && (BOOST_GCC / 100) < 410) + stored_edge_property(self&& x) : Base(static_cast< Base const& >(x)) { + m_property.swap(x.m_property); + } + self& operator=(self&& x) { Base::operator=(static_cast< Base const& >(x)); - m_property = std::move(const_cast(x).m_property); + m_property = std::move(x.m_property); return *this; } #else