/
redgpu
/
clspv
Обзор
Документация
Войти
/
redgpu
/
clspv
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
third_party/llvm/libc/utils/testutils/StreamWrapper.cpp
59 строк
2 KB
Constantine Tarasenkov
python3 utils/fetch_sources.py
04 сен 2021, 14:35
04 сен 2021, 14:35
4a0ab4c
Код
Авторство
О чём код?
//===-- StreamWrapper.cpp -------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// #include "StreamWrapper.h" #include <cassert> #include <fstream> #include <iostream> #include <memory> #include <string> namespace __llvm_libc { namespace testutils { StreamWrapper outs() { return {std::addressof(std::cout)}; } template <typename T> StreamWrapper &StreamWrapper::operator<<(T t) { assert(OS); std::ostream &Stream = *reinterpret_cast<std::ostream *>(OS); Stream << t; Stream.flush(); return *this; } template StreamWrapper &StreamWrapper::operator<<<void *>(void *t); template StreamWrapper &StreamWrapper::operator<<<const char *>(const char *t); template StreamWrapper &StreamWrapper::operator<<<char *>(char *t); template StreamWrapper &StreamWrapper::operator<<<char>(char t); template StreamWrapper &StreamWrapper::operator<<<short>(short t); template StreamWrapper &StreamWrapper::operator<<<int>(int t); template StreamWrapper &StreamWrapper::operator<<<long>(long t); template StreamWrapper &StreamWrapper::operator<<<long long>(long long t); template StreamWrapper & StreamWrapper::operator<<<unsigned char>(unsigned char t); template StreamWrapper & StreamWrapper::operator<<<unsigned short>(unsigned short t); template StreamWrapper &StreamWrapper::operator<<<unsigned int>(unsigned int t); template StreamWrapper & StreamWrapper::operator<<<unsigned long>(unsigned long t); template StreamWrapper & StreamWrapper::operator<<<unsigned long long>(unsigned long long t); template StreamWrapper &StreamWrapper::operator<<<bool>(bool t); template StreamWrapper &StreamWrapper::operator<<<std::string>(std::string t); template StreamWrapper &StreamWrapper::operator<<<float>(float t); template StreamWrapper &StreamWrapper::operator<<<double>(double t); OutputFileStream::OutputFileStream(const char *FN) : StreamWrapper(new std::ofstream(FN)) {} OutputFileStream::~OutputFileStream() { delete reinterpret_cast<std::ofstream *>(OS); } } // namespace testutils } // namespace __llvm_libc