4#include "../Foundation/Compiler.h"
5#include "../Foundation/Platform.h"
12#if SC_PLATFORM_WINDOWS
46using ssize_t =
decltype(
static_cast<char*
>(
nullptr) -
static_cast<char*
>(
nullptr));
62struct PlacementNew {};
70inline void*
operator new(
size_t,
void* p, SC::PlacementNew)
noexcept {
return p; }
71inline void*
operator new[](
size_t,
void* p, SC::PlacementNew)
noexcept {
return p; }
72inline void operator delete(
void*,
void*, SC::PlacementNew)
noexcept {}
74inline void*
operator new(
decltype(
sizeof(0)),
void* p, SC::PlacementNew)
noexcept {
return p; }
75inline void*
operator new[](
decltype(
sizeof(0)),
void* p, SC::PlacementNew)
noexcept {
return p; }
80template<
typename T,
typename... Q>
void placementNew(T& storage, Q&&... other) {
new (&storage, PlacementNew()) T(
SC::forward<Q>(other)...); }
81template<
typename T>
void placementNewArray(T* storage,
size_t size) {
new (storage, PlacementNew()) T[size]; }
82template<
typename T>
void dtor(T& t){ t.~T(); }
unsigned short uint16_t
Platform independent (2) bytes unsigned int.
Definition PrimitiveTypes.h:28
constexpr T && forward(typename TypeTraits::RemoveReference< T >::type &value)
Forwards an lvalue or an rvalue as an rvalue reference.
Definition Compiler.h:276
unsigned char uint8_t
Platform independent (1) byte unsigned int.
Definition PrimitiveTypes.h:27
decltype(sizeof(0)) size_t
Platform independent unsigned size type.
Definition PrimitiveTypes.h:45
decltype(static_cast< char * >(nullptr) - static_cast< char * >(nullptr)) ssize_t
Platform independent signed size type.
Definition PrimitiveTypes.h:46
unsigned long long uint64_t
Platform independent (8) bytes unsigned int.
Definition PrimitiveTypes.h:33
unsigned int uint32_t
Platform independent (4) bytes unsigned int.
Definition PrimitiveTypes.h:29
short int16_t
Platform independent (2) bytes signed int.
Definition PrimitiveTypes.h:36
long long int64_t
Platform independent (8) bytes signed int.
Definition PrimitiveTypes.h:41
signed char int8_t
Platform independent (1) byte signed int.
Definition PrimitiveTypes.h:35
int int32_t
Platform independent (4) bytes signed int.
Definition PrimitiveTypes.h:37
char native_char_t
The native char for the platform (wchar_t (4 bytes) on Windows, char (1 byte) everywhere else )
Definition PrimitiveTypes.h:25
A vocabulary type representing a time interval in milliseconds since epoch.
Definition PrimitiveTypes.h:50