Ahoj, snazim sa vyriesit duplikaciu kodu v const/non-const verzii pri mojej implementacii metody top() v triede stack s vyuzitim sablon, avsak toto sa mi neskompiluje pokial tam nepridam staticauto& _at .. moc nerozumiem preco, nejake vysvetlenie ? dakujem :-)
reference top() {
return _top( *this );
}
const_reference top() const {
return _top( *this );
}
template < typename Self >
auto& _top( Self& self ){
if ( self.empty() ) {
throw std::logic_error::logic_error( "Calling top on empty stack!" );
}
return self.m_buffer[ self.m_size - 1 ];
}