Man page - sdl_copyp(3)
Packages contains this manual
Manual
SDL_copyp
NAMEHEADER FILE
SYNOPSIS
DESCRIPTION
THREAD SAFETY
AVAILABILITY
NAME
SDL_copyp - A macro to copy memory between objects, with basic type checking.
HEADER FILE
Defined in SDL3/SDL_stdinc.h
SYNOPSIS
#include "SDL3/SDL.h"
#define SDL_copyp(dst, src) .BI { SDL_COMPILE_TIME_ASSERT(SDL_copyp, sizeof (*(dst)) == sizeof (*(src))); } .BI SDL_memcpy((dst), (src), sizeof(*(src)))
DESCRIPTION
SDL_memcpy
and
SDL_memmove
do not care where you copy memory to and from, which can
lead to bugs. This macro aims to avoid most of those bugs by
making sure that the source and destination are both
pointers to objects that are the same size. It does not
check that the objects are the same _type_, just that the
copy will not overflow either object.
The size check happens at compile time, and the compiler will throw an error if the objects are different sizes.
Generally this is intended to copy a single object, not an array.
This macro looks like it double-evaluates its parameters, but the extras them are in sizeof sections, which generate no code nor side-effects.
THREAD SAFETY
It is safe to call this function from any thread.
AVAILABILITY
This function is available since SDL 3.2.0.