Универсальный метод (maybe_const)

Андрей Марцинкевич
Андрей Марцинкевич

Идея в том, что бы можно было написать метод, который бы работал как с const this, так и не с const. Проблема особенно актуальна для классов контейнеров, ибо сейчас нужно пистаь разные методы для const и не const

Как это может выглядеть:

 

template <typename T>
class Val
{
public:

  decltype(auto) get() maybe_const
  {
     return _val;
  }

private:
  T _val;
};


Val<int> val;
const Val<int>& cval = val;

val.get() = 4; //OK, return int&
cval.get() = 5; //Compile error, return const int&
-2
рейтинг
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения