Current File : //usr/include/stddef.h
/*	Copyright (c) 1988 AT&T	*/
/*	  All Rights Reserved  	*/


/*
 * Copyright (c) 1988, 2005, Oracle and/or its affiliates. All rights reserved.
 */

#ifndef _STDDEF_H
#define	_STDDEF_H

#include <sys/isa_defs.h>
#include <iso/stddef_iso.h>

/*
 * Allow global visibility for symbols defined in
 * C++ "std" namespace in <iso/stddef_iso.h>.
 */
#if __cplusplus >= 199711L
using std::ptrdiff_t;
using std::size_t;
#endif

#ifdef	__cplusplus
extern "C" {
#endif

/*
 * wchar_t is a built-in type in standard C++ and as such is not
 * defined here when using standard C++. However, the GNU compiler
 * fixincludes utility nonetheless creates its own version of this
 * header for use by gcc and g++. In that version it adds a redundant
 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
 * header we need to include the following magic comment:
 *
 * we must use the C++ compiler's type
 *
 * The above comment should not be removed or changed until GNU
 * gcc/fixinc/inclhack.def is updated to bypass this header.
 */
#if !defined(__cplusplus) || (__cplusplus < 199711L && !defined(__GNUG__))
#ifndef _WCHAR_T
#define	_WCHAR_T
#if defined(_LP64)
typedef int	wchar_t;
#else
typedef long    wchar_t;
#endif
#endif  /* !_WCHAR_T */
#endif	/* !defined(__cplusplus) ... */

#ifdef	__cplusplus
}
#endif

#endif	/* _STDDEF_H */