brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1023 B · 6f39ade Raw
29 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// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)10 11// <string_view>12 13// template<class charT, class traits, class Allocator>14//   basic_ostream<charT, traits>&15//   operator<<(basic_ostream<charT, traits>& os,16//              const basic_string_view<charT,traits> str);17 18#include <iosfwd>19#include <string_view>20#include <utility>21 22template <class SV, class = void>23struct HasDecl : std::false_type {};24template <class SV>25struct HasDecl<SV, decltype(static_cast<void>(std::declval<std::ostream&>() << std::declval<SV&>()))> : std::true_type {26};27 28static_assert(HasDecl<std::string_view>::value, "streaming operator declaration not present");29