//===-- raw-ostream.h - Support for printing using raw_ostream --*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// This file is not part of gtest, but extends it to support LLVM libraries.
// This is not a public API for testing - it's a detail of LLVM's gtest.
//
// gtest allows providing printers for custom types by defining operator<<.
// In LLVM, operator<< usually takes llvm:raw_ostream& instead of std::ostream&.
//
// This file defines a template printable(V), which returns a version of V that
// can be streamed into a std::ostream.
//
// This interface is chosen so that in the default case (printable(V) is V),
// the main gtest code calls operator<<(OS, V) itself. gtest-printers carefully
// controls the lookup to enable fallback printing (see testing::internal2).
//===----------------------------------------------------------------------===//
namespace llvm_gtest // namespace llvm_gtest
// If raw_ostream support is enabled, we specialize for types with operator<<
// that takes a raw_ostream.
namespace llvm_gtest // namespace llvm_gtest
// !GTEST_NO_LLVM_SUPPORT
// GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_RAW_OSTREAM_H_