brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · e5f1d91 Raw
45 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <ios>10 11// template <class charT, class traits> class basic_ios12 13// bool fail() const;14 15#include <ios>16#include <streambuf>17#include <cassert>18 19#include "test_macros.h"20 21struct testbuf : public std::streambuf {};22 23int main(int, char**)24{25    {26        std::ios ios(0);27        assert(ios.fail());28        ios.setstate(std::ios::eofbit);29        assert(ios.fail());30    }31    {32        testbuf sb;33        std::ios ios(&sb);34        assert(!ios.fail());35        ios.setstate(std::ios::eofbit);36        assert(!ios.fail());37        ios.setstate(std::ios::badbit);38        assert(ios.fail());39        ios.setstate(std::ios::failbit);40        assert(ios.fail());41    }42 43  return 0;44}45