Function template operator>>
boost::logic::operator>> — Reads a tribool value from a stream.
Synopsis
template<typename CharT, typename Traits>
std::basic_istream< CharT, Traits > &
operator>>(std::basic_istream< CharT, Traits > & in, tribool & x);
Description
Когда<(out.flags() & std::ios_base::boolalpha) == 0
>, эта функция считывает значение<long
>из входного потока<in
>и преобразует это значение в трибул. Если это значение равно 0, то<x
>становится<false
>; если это 1,<x
>становится<true
>; если это 2,<becomes
><indetermine
>; в противном случае операция выходит из строя (и бит отказа устанавливается на входном потоке<in
>).
Когда<(out.flags() & std::ios_base::boolalpha) != 0
>, эта функция сначала определяет имена ложных, истинных и неопределенных значений. Фальшивые и истинные имена извлекаются из<std::numpunct
>граней локализации входного потока (если реализация стандартной библиотеки C++ поддерживает локализации) или из<default_false_name
>и<default_true_name
>функций (если поддержка локализации отсутствует). Неопределенное имя извлекается из соответствующей грани<indeterminate_name
>
(если оно доступно в локации входного потока) или из функции<get_default_indeterminate_name
>(если реализация стандартной библиотеки C++ не поддерживает локали, или грань<indeterminate_name
>
не указана для этого локального объекта). Затем вход сопоставляется с каждым из этих имен, и трибулу<x
>присваивается значение, соответствующее самому длинному имени, которое соответствовало. Если имя не совпадает или все имена пусты, операция выходит из строя (и бит отказа устанавливается на входном потоке<in
>).