Как использовать конечный тип возврата с шаблонным членом класса

Я пытаюсь реализовать следующий класс:

template 
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;
};

Причина ям, используя конечный тип возврата, потому что я неЯ не знаю, будет ли m_container постоянным или нет, поэтому я позволю компилятору решить это за меня. Однако я'm получает следующие ошибки компилятора:

/Users/mark/Blah/Stdx.h:77:40: ни один участник не назван 'm_container» в 'stdx :: reverse_adaptor> >»

Я подумал, что это может быть связано с многоэтапным проходом шаблонных типов, поэтому изменил его на чтениеdecltype(this->m_container.rbegin())но это нетоже не работает.

Как я могу заставить это работать?

Пример -http://ideone.com/ekVYlH

Ответы на вопрос(2)

Ваш ответ на вопрос