WindowsXP/base/win32/fusion/appweek/inc/sxapwpreprocessorpaste.h
2025-04-27 07:49:33 -04:00

49 lines
1.9 KiB
C

/*-----------------------------------------------------------------------------
Microsoft SXAPW
Microsoft Confidential
Copyright 1995-2000 Microsoft Corporation. All Rights Reserved.
@doc external
@module SxApwPreprocessorPaste.h
@owner JayKrell
-----------------------------------------------------------------------------*/
#if !defined(VS_COMMON_INC_SXAPW_PREPROCESSORPASTE_H_INCLUDED_) // {
#define VS_COMMON_INC_SXAPW_PREPROCESSORPASTE_H_INCLUDED_
/*#pragma once ends up in .rgi, which is bad, so do not do it*/
#define SxApwPrivatePreprocessorPaste(x, y) x ## y
/*-----------------------------------------------------------------------------
Name: SxApwPreprocessorPaste2, SxApwPreprocessorPaste3, etc.
@macro
These macros paste together n tokens, where n is in the name of the macro.
A level of evaluation is inserted as well.
define A 1
define B 2
SxApwPreprocessorPaste2(A, B) -> 12
@owner JayKrell
-----------------------------------------------------------------------------*/
// These are synonyms.
#define SxApwPreprocessorPaste(x, y) SxApwPrivatePreprocessorPaste(x, y)
#define SxApwPreprocessorPaste2(x, y) SxApwPrivatePreprocessorPaste(x, y)
#define SxApwPreprocessorPaste3(x, y, z) SxApwPreprocessorPaste(SxApwPreprocessorPaste(x, y), z)
#define SxApwPreprocessorPaste4(w, x, y, z) SxApwPreprocessorPaste(SxApwPreprocessorPaste3(w, x, y), z)
#define SxApwPreprocessorPaste5(v, w, x, y, z) SxApwPreprocessorPaste(SxApwPreprocessorPaste4(v, w, x, y), z)
#define SxApwPreprocessorPaste6(u, v, w, x, y, z) SxApwPreprocessorPaste(SxApwPreprocessorPaste5(u, v, w, x, y), z)
#define SxApwPreprocessorPaste15(a1,a2,a3,a4,a5,a6,a7,a8,a9,a,b,c,d,e,f) \
SxApwPreprocessorPaste3 \
( \
SxApwPreprocessorPaste5(a1,a2,a3,a4,a5), \
SxApwPreprocessorPaste5(a6,a7,a8,a9,a), \
SxApwPreprocessorPaste5(b,c,d,e,f) \
)
#endif // }