Skip to content

Commit

Permalink
fix move ctor + housekeeping
Browse files Browse the repository at this point in the history
  • Loading branch information
artemp committed Jun 16, 2014
1 parent f7648ba commit 6aee8c4
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions recursive_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ class recursive_wrapper

public:

recursive_wrapper& operator=(const recursive_wrapper& rhs)
inline recursive_wrapper& operator=(recursive_wrapper const& rhs)
{
assign( rhs.get() );
return *this;
}

recursive_wrapper& operator=(const T& rhs)
inline recursive_wrapper& operator=(T const& rhs)
{
assign( rhs );
return *this;
Expand Down Expand Up @@ -65,12 +65,12 @@ class recursive_wrapper

public:

inline T& get() { return *get_pointer(); }
inline const T& get() const { return *get_pointer(); }

inline T* get_pointer() { return p_; }
inline const T* get_pointer() const { return p_; }

T& get() { return *get_pointer(); }
const T& get() const { return *get_pointer(); }
T* get_pointer() { return p_; }
const T* get_pointer() const { return p_; }
operator T const&() const { return this->get(); }
operator T&() { return this->get(); }
};

template <typename T>
Expand Down Expand Up @@ -99,8 +99,9 @@ recursive_wrapper<T>::recursive_wrapper(T const& operand)

template <typename T>
recursive_wrapper<T>::recursive_wrapper(recursive_wrapper&& operand)
: p_(new T( std::move(operand.get()) ))
: p_(operand.p_)
{
operand.p_ = nullptr;
}

template <typename T>
Expand Down

0 comments on commit 6aee8c4

Please sign in to comment.