Jak używać typu powrotu na końcu z członkiem klasy z szablonem

Próbuję zaimplementować następującą klasę:

template <typename Container>
class reverse_adaptor
{
public: // Construction
    reverse_adaptor(Container &container) :
        m_container(container)
    {}

public: // STL container static polymorphism
    auto begin() const -> decltype(m_container.rbegin())
    {
        return m_container.rbegin();
    }

    auto end() const -> decltype(m_container.rend())
    {
        return m_container.rend();
    }

private: // Members
    Container &m_container;
};

Powodem, dla którego używam typu powrotu na końcu, jest to, że nie wiem, czy m_container będzie stały, czy nie, więc pozwalam kompilatorowi na to pracować. Dostaję jednak następujące błędy kompilatora:

/Users/mark/Blah/Stdx.h:77:40: Brak członka o nazwie 'm_container' w 'stdx :: reverse_adaptor>>'

Myślałem, że może to być związane z wielostopniowym przebiegiem typów szablonów, więc zmieniłem go na czytaniedecltype(this->m_container.rbegin()), ale to też nie zadziałało.

Jak mogę to uruchomić?

Przykład -http://ideone.com/ekVYlH

questionAnswers(2)

yourAnswerToTheQuestion