Benjamin Mahler created MESOS-2716:
--------------------------------------
Summary: Add non-const reference version of Option<T>::get.
Key: MESOS-2716
URL: https://issues.apache.org/jira/browse/MESOS-2716
Project: Mesos
Issue Type: Improvement
Components: stout
Reporter: Benjamin Mahler
Currently Option only provides a const reference to the underlying object:
{code}
template <typename T>
class Option
{
...
const T& get() const;
...
};
{code}
Since we use Option as a replacement for NULL, we often have optional variables
that we need to perform non-const operations on. However, this requires taking
a copy:
{code}
static void cleanup(const Response& response)
{
if (response.type == Response::PIPE) {
CHECK_SOME(response.reader);
http::Pipe::Reader reader = response.reader.get(); // Remove const.
reader.close();
}
}
{code}
Taking a copy is hacky, but works for shared objects and some other copyable
objects. Since Option represents a mutable variable, it makes sense to add
non-const reference access to the underlying value:
{code}
template <typename T>
class Option
{
...
const T& get() const;
T& get();
...
};
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)