You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Benjamin Mahler (JIRA)" <ji...@apache.org> on 2015/05/12 03:30:59 UTC
[jira] [Created] (MESOS-2716) Add non-const reference version of
Option::get.
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)