Я просто тестировал какой-то код и заметил нечто похожее на:
template<typename T>
class example{
public:
example(T t): m_value{t}{}
const T &value = m_value;
private:
T m_value;
};
Я этого раньше не видел. Почти каждый API или библиотека, которую я использовал ранее, определяет функцию, которая возвращает переменную-член так, а не постоянную ссылку на нее:
template<typename T>
class example{
public:
example(T t): m_value{t}{}
const T &value() const{
return m_value;
}
private:
T m_value;
};
Почему первый способ менее распространен? Каковы недостатки?