![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/boost/optional/ |
Upload File : |
// Copyright (C) 2005, Fernando Luis Cacciola Carballal. // // Use, modification, and distribution is subject to 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) // // See http://www.boost.org/libs/optional for documentation. // // You are welcome to contact the author at: // fernando_cacciola@hotmail.com // #ifndef BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP #define BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP #include <istream> #include <ostream> #include "boost/none.hpp" #include "boost/optional/optional.hpp" namespace boost { template<class CharType, class CharTrait> inline std::basic_ostream<CharType, CharTrait>& operator<<(std::basic_ostream<CharType, CharTrait>& out, none_t) { if (out.good()) { out << "--"; } return out; } template<class CharType, class CharTrait, class T> inline std::basic_ostream<CharType, CharTrait>& operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v) { if (out.good()) { if (!v) out << "--" ; else out << ' ' << *v ; } return out; } template<class CharType, class CharTrait, class T> inline std::basic_istream<CharType, CharTrait>& operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v) { if (in.good()) { int d = in.get(); if (d == ' ') { T x; in >> x; #ifndef BOOST_OPTIONAL_DETAIL_NO_RVALUE_REFERENCES v = boost::move(x); #else v = x; #endif } else { if (d == '-') { d = in.get(); if (d == '-') { v = none; return in; } } in.setstate( std::ios::failbit ); } } return in; } } // namespace boost #endif