__FB_ARG_LISTEXPAND__
Intrinsic define (macro) performed by the compiler.
Syntax:
__FB_ARG_LISTEXPAND__( macroname, macroargcount, args... )
Parameters:
macroname
name of the macro used for extension calls
macroargcount
number of parameters for the 'macroname' macro
expand the parameter list 'args...' according to the 'macroargcount' value:
args...expand the parameter list 'args...' according to the 'macroargcount' value:
- 'macroargcount > 0' : pass 'macroargcount' parameters each time
- 'macroargcount = 0' : pass all parameters
- 'macroargcount < 0' : for each parameter passed, the previous 'macroargcount' parameters are automatically removed on the next pass
- 'macroargcount = 0' : pass all parameters
- 'macroargcount < 0' : for each parameter passed, the previous 'macroargcount' parameters are automatically removed on the next pass
argument list
Description:
Expands to one or more 'macroname( .... )' depending on the value of macroargcount and number of arguments in the args... list.
Returns empty string on invalid index, rather than compile error.
Returns empty string on invalid index, rather than compile error.
Examples:
#macro m( arg... )
#print " "##arg
#endmacro
#print "macroargcount>0 (=1):"
__FB_ARG_LISTEXPAND__( m, 1, Hello1, Hello2, Hello3, Hello4)
#print " "
#print "macroargcount=0 (=0):"
__FB_ARG_LISTEXPAND__( m, 0, Hello1, Hello2, Hello3, Hello4)
#print " "
#print "macroargcount<0 (=-1):"
__FB_ARG_LISTEXPAND__( m, -1, Hello1, Hello2, Hello3, Hello4)
/' Compiler output:
macroargcount>0 (=1):
Hello1
Hello2
Hello3
Hello4
macroargcount=0 (=0):
Hello1, Hello2, Hello3, Hello4
macroargcount<0 (=-1):
Hello1, Hello2, Hello3, Hello4
Hello2, Hello3, Hello4
Hello3, Hello4
Hello4
'/
#print " "##arg
#endmacro
#print "macroargcount>0 (=1):"
__FB_ARG_LISTEXPAND__( m, 1, Hello1, Hello2, Hello3, Hello4)
#print " "
#print "macroargcount=0 (=0):"
__FB_ARG_LISTEXPAND__( m, 0, Hello1, Hello2, Hello3, Hello4)
#print " "
#print "macroargcount<0 (=-1):"
__FB_ARG_LISTEXPAND__( m, -1, Hello1, Hello2, Hello3, Hello4)
/' Compiler output:
macroargcount>0 (=1):
Hello1
Hello2
Hello3
Hello4
macroargcount=0 (=0):
Hello1, Hello2, Hello3, Hello4
macroargcount<0 (=-1):
Hello1, Hello2, Hello3, Hello4
Hello2, Hello3, Hello4
Hello3, Hello4
Hello4
'/
- Since fbc 1.20.0
Differences from QB:
- New to FreeBASIC
See also:
Back to Intrinsic Defines