1 /*---------------------------------------------------------------------------*
2   Project:  NintendoWare
3   File:     msvc.h
4 
5   Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain proprietary
8   information of Nintendo and/or its licensed developers and are protected by
9   national and international copyright laws. They may not be disclosed to third
10   parties or copied or duplicated in any form, in whole or in part, without the
11   prior written consent of Nintendo.
12 
13   The content herein is highly confidential and should be handled accordingly.
14 
15   $Revision: 31311 $
16  *---------------------------------------------------------------------------*/
17 
18 #ifndef NW_CONFIG_COMPILER_MSVC_H_
19 #define NW_CONFIG_COMPILER_MSVC_H_
20 
21 #pragma warning( disable : 4200 ) // warning: zero-sized array in struct/union
22 #pragma warning( disable : 4311 ) // warning: pointer truncation from 'type' to 'type'
23 #pragma warning( disable : 4312 ) // warning: conversion from 'type' to 'type' of greater size
24 #pragma warning( disable : 4355 ) // warning: used in base member initializer list
25 
26 #if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
27 #define NW_COMPILER_WITH_W64
28 #endif
29 
30 #define NW_NO_THROW     throw()
31 #define NW_NO_INLINE(function)    __declspec(noinline) function
32 
33 #include <limits.h>
34 #include <float.h>
35 
36 inline int
isfinite(float f)37 isfinite(float f)
38 {
39     return _finite( f );
40 }
41 
42 inline int
isnan(float f)43 isnan(float f)
44 {
45     return _isnan( f );
46 }
47 
48 void* operator new( size_t size, void* ptr );
49 void* operator new[]( size_t size, void* ptr );
50 void  operator delete( void* memory, void* ptr );
51 void  operator delete[]( void* memory, void* ptr );
52 
53 /* NW_CONFIG_COMPILER_MSVC_H_ */
54 #endif
55