⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tempbuf.h

📁 C++标准库源代码_C++ STL Source Code 请不要修改任何文件
💻 H
字号:
/* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Hewlett-Packard Company makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. * */#ifndef TEMPBUF_H#define TEMPBUF_H#include <limits.h>#include <pair.h>#ifndef __stl_buffer_size#define __stl_buffer_size 16384 // 16k#endifextern char __stl_temp_buffer[__stl_buffer_size];//not reentrant codetemplate <class T>pair<T*, int> get_temporary_buffer(int len, T*) {    while (len > __stl_buffer_size / sizeof(T)) {	set_new_handler(0);        T* tmp = (T*)(::operator new((unsigned int)len * sizeof(T)));        if (tmp) return pair<T*, int>(tmp, len);        len = len / 2;    }    return pair<T*, int>((T*)__stl_temp_buffer,                          (int)(__stl_buffer_size / sizeof(T)));}template <class T>void return_temporary_buffer(T* p) {    if ((char*)(p) != __stl_temp_buffer) deallocate(p);}template <class T>pair<T*, long> get_temporary_buffer(long len, T* p) {    if (len > INT_MAX/sizeof(T)) 	len = INT_MAX/sizeof(T);    pair<T*, int> tmp = get_temporary_buffer((int)len, p);    return pair<T*, long>(tmp.first, (long)(tmp.second));}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -