📄 contain.h
字号:
/* * contain.h * * Low level object and container definitions. * * Portable Windows Library * * Copyright (c) 1993-1998 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Portions are Copyright (C) 1993 Free Software Foundation, Inc. * All Rights Reserved. * * Contributor(s): ______________________________________. * * $Log: contain.h,v $ * Revision 1.25 2004/05/12 04:36:18 csoutheren * Fixed problems with using sem_wait and friends on systems that do not * support atomic integers * * Revision 1.24 2004/04/11 13:34:51 csoutheren * Sigh. gcc needs a namespace directive in order to compile correctly :( * * Revision 1.23 2004/04/11 06:15:35 csoutheren * Modified to use Atomic_word if available * * Revision 1.22 2004/04/11 03:20:42 csoutheren * Added Unix implementation of PCriticalSection * * Revision 1.21 2004/04/09 11:54:47 csoutheren * Added configure.in check for STL streams, and tested with gcc 2.95.3, * gcc 3.3.1, and gcc 3.3.3 * * Revision 1.20 2004/04/09 00:42:59 csoutheren * Changed Unix build to use slightly different method for * keep class names, as GCC does not use actual class names for typeinfo * * Revision 1.19 2004/04/03 08:57:41 csoutheren * Replaced pseudo-RTTI with real RTTI * * Revision 1.18 2004/04/03 07:14:51 csoutheren * Remove no-rtti compiler flag * Added __USE_STL__ to allow interopability with STL and iostreams * * Revision 1.17 2003/10/27 03:21:43 csoutheren * Added UINT type needed for QoS * * Revision 1.16 2003/09/17 01:18:03 csoutheren * Removed recursive include file system and removed all references * to deprecated coooperative threading support * * Revision 1.15 2002/06/06 09:27:26 robertj * Fixed PINDEX macros for being signed no (gcc3 port). * iAdded limits.h for Solaris compatibility. * * Revision 1.14 2002/06/05 12:29:15 craigs * Changes for gcc 3.1 * * Revision 1.13 1999/05/01 11:29:19 robertj * Alpha linux port changes. * * Revision 1.12 1999/01/08 01:27:43 robertj * Moved include of pmachdep to earlier in inclusions. * * Revision 1.11 1998/11/30 22:06:35 robertj * New directory structure. * * Revision 1.10 1998/11/03 10:56:33 robertj * Removed unused extern for PErrorStream * * Revision 1.9 1998/09/24 04:11:31 robertj * Added open software license. * */#include "pmachdep.h"#include <unistd.h>#include <ctype.h>#include <limits.h>/////////////////////////////////////////////// define TRUE and FALSE for environments that don't have them//#ifndef TRUE#define TRUE 1#define FALSE 0#endif/////////////////////////////////////////////// define a macro for declaring classes so we can bolt// extra things to class declarations//#define PEXPORT#define PSTATIC/////////////////////////////////////////////// define some basic types and their limits//typedef int BOOL;typedef unsigned char BYTE; // 1 bytetypedef signed short PInt16; // 16 bittypedef unsigned short WORD;typedef signed int PInt32; // 32 bittypedef unsigned int DWORD;#ifndef P_NEEDS_INT64typedef signed long long int PInt64;typedef unsigned long long int PUInt64; // 64 bit#endif// Integer type that is same size as a pointer type.#ifdef P_64BITtypedef long INT;typedef unsigned long UINT;#elsetypedef int INT;typedef unsigned int UINT;#endiftypedef int PINDEX;#define P_MAX_INDEX INT_MAXinline PINDEX PABSINDEX(PINDEX idx) { return (idx < 0 ? -idx : idx)&P_MAX_INDEX; }#define PASSERTINDEX(idx) PAssert((idx) >= 0, PInvalidArrayIndex)/////////////////////////////////////////////// needed for STL//#if P_HAS_STL_STREAMS#define __USE_STL__ 1#endif#define P_HAS_TYPEINFO 1#define PCLASSNAME(cls) (#cls)using namespace std;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -