/*----------------------------------------------------------------------------- Microsoft FUSION Microsoft Confidential Copyright (c) Microsoft Corporation. All Rights Reserved. @doc external @module fusionpreprocessorpaste.h @owner JayKrell -----------------------------------------------------------------------------*/ #if !defined(VS_COMMON_INC_FUSION_PREPROCESSORPASTE_H_INCLUDED_) // { #define VS_COMMON_INC_FUSION_PREPROCESSORPASTE_H_INCLUDED_ /*#pragma once ends up in .rgi, which is bad, so do not do it*/ #define FusionpPrivatePreprocessorPaste(x, y) x ## y /*----------------------------------------------------------------------------- Name: FusionpPreprocessorPaste2, FusionpPreprocessorPaste3, 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 FusionpPreprocessorPaste2(A, B) -> 12 @owner JayKrell -----------------------------------------------------------------------------*/ // These are synonyms. #define FusionpPreprocessorPaste(x, y) FusionpPrivatePreprocessorPaste(x, y) #define FusionpPreprocessorPaste2(x, y) FusionpPrivatePreprocessorPaste(x, y) #define FusionpPreprocessorPaste3(x, y, z) FusionpPreprocessorPaste(FusionpPreprocessorPaste(x, y), z) #define FusionpPreprocessorPaste4(w, x, y, z) FusionpPreprocessorPaste(FusionpPreprocessorPaste3(w, x, y), z) #define FusionpPreprocessorPaste5(v, w, x, y, z) FusionpPreprocessorPaste(FusionpPreprocessorPaste4(v, w, x, y), z) #define FusionpPreprocessorPaste6(u, v, w, x, y, z) FusionpPreprocessorPaste(FusionpPreprocessorPaste5(u, v, w, x, y), z) #define FusionpPreprocessorPaste15(a1,a2,a3,a4,a5,a6,a7,a8,a9,a,b,c,d,e,f) \ FusionpPreprocessorPaste3 \ ( \ FusionpPreprocessorPaste5(a1,a2,a3,a4,a5), \ FusionpPreprocessorPaste5(a6,a7,a8,a9,a), \ FusionpPreprocessorPaste5(b,c,d,e,f) \ ) #endif // }