__FB_JOIN__

Intrinsic define (macro) performed by the compiler.

Syntax
   __FB_JOIN__( arg1, arg2 )

Parameters
   arg1, arg2
      left (1) and right (2) arguments to join

Description
   Joins two token arguments together as one, similar to token pasting 
   operator (##) but more powerfull (will resolve arguments before 
   joining).

Example
   #macro m ( arg1, arg2 )
      #print arg1##arg2
      #print __FB_JOIN__( arg1, arg2 )
   #endmacro

   m(Free, BASIC)

   /' Compiler output:
   FreeBASIC
   FreeBASIC
   '/
      

   #define PREFIX p
   #define SUFFIX _T

   '' this won't work - arguments not expanded
   #define   makename1( x )  PREFIX##x##SUFFIX

   '' this will work - can do this in older versions of fbc too
   #define join( a, b ) a##b
   #define makename2( x ) join( PREFIX, join( x, SUFFIX ) )

   '' built in __FB_JOIN__() -- works pretty much like join() above
   #define   makename3( x )  __FB_JOIN__( PREFIX, __FB_JOIN__( x, SUFFIX ) )

   #macro dump( arg )
      #print #arg
   #endmacro

   dump( makename1(text) )
   dump( makename2(text) )
   dump( makename3(text) )

   /' Compiler output:
   PREFIXtextSUFFIX
   ptext_T
   ptext_T
   '/
      

Version
   * Since fbc 1.08.0

Differences from QB
   * New to FreeBASIC

See also
   * Operator ## (Preprocessor Concatenate)

