39 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// Because we don't have a functioning decltype in C++0310// UNSUPPORTED: c++0311 12// UNSUPPORTED: no-localization13 14// <memory>15 16// unique_ptr17 18// template<class CharT, class Traits, class Y, class D>19// basic_ostream<CharT, Traits>&20// operator<<(basic_ostream<CharT, Traits>& os, const unique_ptr<Y, D>& p);21 22// -?- Remarks: This function shall not participate in overload resolution unless os << p.get() is a valid expression.23 24#include <memory>25#include <sstream>26#include <cassert>27 28#include "min_allocator.h"29#include "deleter_types.h"30 31int main(int, char**)32{33 std::unique_ptr<int, PointerDeleter<int>> p;34 std::ostringstream os;35 os << p; // expected-error {{invalid operands to binary expression}}36 37 return 0;38}39