/*
Copyright 2016 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see .
*/
#pragma once
#include
//////////////////////////////////////////////////////////////////////////
// _L(), __L()
//////////////////////////////////////////////////////////////////////////
#define __L(x) L ## x
#define _L(x) __L(x)
//////////////////////////////////////////////////////////////////////////
// aassert(), averify()
//////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
extern "C" {
#endif
_CRTIMP void __cdecl _wassert(_In_z_ const wchar_t * _Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line);
#ifdef __cplusplus
}
#endif
#if defined(NDEBUG) // aassert() and averify() are defined according to NDEBUG for consistent experience with assert().
#define aassert(expr) ((void)0)
#define averify(expr) ((void)(expr))
#else
#define aassert(expr) ((void)((expr) || (_wassert(_L(#expr), _L(__FILE__), __LINE__), 0)))
#define averify(expr) aassert(expr)
#endif