75 lines
2.8 KiB
Plaintext
75 lines
2.8 KiB
Plaintext
[/
|
|
Boost.Optional
|
|
|
|
Copyright (c) 2003-2007 Fernando Luis Cacciola Carballal
|
|
Copyright (c) 2015 Andrzej Krzemienski
|
|
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt)
|
|
]
|
|
|
|
[section:io_header Header <boost/optional/optional_io.hpp>]
|
|
|
|
[section:io_synop Synopsis]
|
|
```
|
|
#include <istream>
|
|
#include <ostream>
|
|
#include <boost/optional/optional.hpp>
|
|
|
|
namespace boost {
|
|
|
|
template <class CharType, class CharTrait, class T>
|
|
std::basic_ostream<CharType, CharTrait>&
|
|
operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v); ``[link reference_operator_ostream __GO_TO__]``
|
|
|
|
template <class CharType, class CharTrait>
|
|
std::basic_ostream<CharType, CharTrait>&
|
|
operator<<(std::basic_ostream<CharType, CharTrait>& out, none_t const&); ``[link reference_operator_ostream_none __GO_TO__]``
|
|
|
|
template<class CharType, class CharTrait, class T>
|
|
std::basic_istream<CharType, CharTrait>&
|
|
operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v); ``[link reference_operator_istream __GO_TO__]``
|
|
|
|
} // namespace boost
|
|
```
|
|
|
|
[endsect]
|
|
|
|
[section:io_semantics Detailed semantics]
|
|
|
|
|
|
[#reference_operator_ostream]
|
|
|
|
|
|
`template <class CharType, class CharTrait, class T>` [br]
|
|
\u00A0\u00A0\u00A0\u00A0`std::basic_ostream<CharType, CharTrait>&` [br]
|
|
\u00A0\u00A0\u00A0\u00A0`operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v);`
|
|
|
|
* [*Effect:] Outputs an implementation-defined string. The output contains the information about whether the optional object contains a value or not. If `v` contains a value, the output contains result of calling `out << *v`.
|
|
* [*Returns:] `out`.
|
|
|
|
__SPACE__
|
|
[#reference_operator_ostream_none]
|
|
|
|
`template <class CharType, class CharTrait, class T>` [br]
|
|
\u00A0\u00A0\u00A0\u00A0`std::basic_ostream<CharType, CharTrait>&` [br]
|
|
\u00A0\u00A0\u00A0\u00A0`operator<<(std::basic_ostream<CharType, CharTrait>& out, none_t);`
|
|
|
|
* [*Effect:] Outputs an implementation-defined string.
|
|
* [*Returns:] `out`.
|
|
|
|
__SPACE__
|
|
[#reference_operator_istream]
|
|
|
|
`template <class CharType, class CharTrait, class T>` [br]
|
|
\u00A0\u00A0\u00A0\u00A0`std::basic_ostream<CharType, CharTrait>&` [br]
|
|
\u00A0\u00A0\u00A0\u00A0`operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v);`
|
|
|
|
* [*Requires:] `T` is __SGI_DEFAULT_CONSTRUCTIBLE__ and __MOVE_CONSTRUCTIBLE__.
|
|
* [*Effect:] Reads the value of optional object from `in`. If the string representation indicates that the optional object should contain a value, `v` contains a value and its contained value is obtained as if by default-constructing an object `o` of type `T` and then calling `in >> o`; otherwise `v` does not contain a value, and the previously contained value (if any) has been destroyed.
|
|
* [*Returns:] `out`.
|
|
|
|
[endsect]
|
|
[endsect]
|