yum-mirror/VkFFT
git clone https://git.yummers.dev/yum-mirror/VkFFT
ba7001c
master
1//------------------------------------------------------------------------------------------------------------------------------------------------------------- 2// 3// Foundation/NSDefines.hpp 4// 5// Copyright 2020-2021 Apple Inc. 6// 7// Licensed under the Apache License, Version 2.0 (the "License"); 8// you may not use this file except in compliance with the License. 9// You may obtain a copy of the License at 10// 11// http://www.apache.org/licenses/LICENSE-2.0 12// 13// Unless required by applicable law or agreed to in writing, software 14// distributed under the License is distributed on an "AS IS" BASIS, 15// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16// See the License for the specific language governing permissions and 17// limitations under the License. 18// 19//------------------------------------------------------------------------------------------------------------------------------------------------------------- 20 21#pragma once 22 23//------------------------------------------------------------------------------------------------------------------------------------------------------------- 24 25#define _NS_WEAK_IMPORT __attribute__((weak_import)) 26#define _NS_EXPORT __attribute__((visibility("default"))) 27#define _NS_EXTERN extern "C" _NS_EXPORT 28#define _NS_INLINE inline __attribute__((always_inline)) 29#define _NS_PACKED __attribute__((packed)) 30 31#define _NS_CONST (type ,name ) _NS_EXTERN type const name; 32#define _NS_ENUM (type ,name ) enum name : type 33#define _NS_OPTIONS (type ,name ) \ 34 using name = type; \ 35 enum : name 36 37#define _NS_CAST_TO_UINT (value ) static_cast<NS::UInteger>(value) 38#define _NS_VALIDATE_SIZE (ns ,name ) static_assert(sizeof(ns::name) == sizeof(ns##name), "size mismatch " #ns "::" #name) 39#define _NS_VALIDATE_ENUM (ns ,name ) static_assert(_NS_CAST_TO_UINT(ns::name) == _NS_CAST_TO_UINT(ns##name), "value mismatch " #ns "::" #name) 40 41//-------------------------------------------------------------------------------------------------------------------------------------------------------------