JUCE-7.0.12-0-g4f43011b96
JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins
« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_audio_processors
format_types
VST3_SDK
pluginterfaces
base
typesizecheck.h
Go to the documentation of this file.
1
//-----------------------------------------------------------------------------
2
// Project : SDK Core
3
//
4
// Category : SDK Core Interfaces
5
// Filename : pluginterfaces/base/typesizecheck.h
6
// Created by : Steinberg, 08/2018
7
// Description : Compile time type size check macro
8
//
9
//-----------------------------------------------------------------------------
10
// This file is part of a Steinberg SDK. It is subject to the license terms
11
// in the LICENSE file found in the top-level directory of this distribution
12
// and at www.steinberg.net/sdklicenses.
13
// No part of the SDK, including this file, may be copied, modified, propagated,
14
// or distributed except according to the terms contained in the LICENSE file.
15
//-----------------------------------------------------------------------------
16
17
#pragma once
18
19
#include "
pluginterfaces/base/fplatform.h
"
20
21
#if SMTG_CPP11
22
#define SMTG_TYPE_STATIC_CHECK(Operator, Type, Platform64Size, MacOS32Size, Win32Size, \
23
Linux32Size) \
24
namespace { \
25
template <typename Type, size_t w, size_t x, size_t y, size_t z> \
26
struct Operator##Check##Type \
27
{ \
28
constexpr Operator##Check##Type () \
29
{ \
30
static_assert (Operator (Type) == \
31
(SMTG_PLATFORM_64 ? w : SMTG_OS_MACOS ? x : SMTG_OS_LINUX ? z : y), \
32
"Struct " #Operator " error: " #Type); \
33
} \
34
}; \
35
static constexpr Operator##Check##Type<Type, Platform64Size, MacOS32Size, Win32Size, \
36
Linux32Size> \
37
instance##Operator##Type; \
38
}
39
43
#define SMTG_TYPE_SIZE_CHECK(Type, Platform64Size, MacOS32Size, Win32Size, Linux32Size) \
44
SMTG_TYPE_STATIC_CHECK (sizeof, Type, Platform64Size, MacOS32Size, Win32Size, Linux32Size)
45
49
#define SMTG_TYPE_ALIGN_CHECK(Type, Platform64Size, MacOS32Size, Win32Size, Linux32Size) \
50
SMTG_TYPE_STATIC_CHECK (alignof, Type, Platform64Size, MacOS32Size, Win32Size, Linux32Size)
51
52
#else
53
// need static_assert
54
#define SMTG_TYPE_SIZE_CHECK(Type, Platform64Size, MacOS32Size, Win32Size, Linux32Size)
55
#endif
fplatform.h
« « « Anklang Documentation