Whishlist: version

With the advent of Igor 7, I would like to make use of new features found therein, mostly for speed of execution.
Of course I can achieve the same thing with Igor 6, it just takes longer.
For compatibility it would be nice to have the ability to do something like:

Function igortest()

    Make/I/O/N = 1E7 RawData = p
    Variable start = startmstimer
   
    if (igorversion() > 6.99)
         //stuff that will only work with Igor 7
         MatrixOp/O result = bitShift(RawData,-25)
    else
         //different stuff that will work with igor 6 versions
         MatrixOp/O result = RawData/33554432
    endif
   
    Variable stop = stopmstimer(start)/1000000
    Print stop

End


Note: I use way more of the new function than this in Igor 7, the overall result of the new functions allows for much faster execution (about 50% faster for me).
Of course this code will compile and execute fine in igor 7, but not in igor 6 as there will be unknown flags, functions, etc.
Is there any way to do this already that I don't know about?
You can use the #if type of conditional compilation directives to achieve this.

Function igortest()
 
    Make/I/O/N = 1E7 RawData = p
    Variable start = startmstimer
 
    #if (igorversion() > 6.99)
         //stuff that will only work with Igor 7
         MatrixOp/O result = bitShift(RawData,-25)
    #else
         //different stuff that will work with igor 6 versions
         MatrixOp/O result = RawData/33554432
    #endif
 
    Variable stop = stopmstimer(start)/1000000
    Print stop
 
End


For Igor 6.3.8.1
•igortest()
0.0450491

For Igor 7.0.0.3
•igortest()
0.0252351

(Win7 64 bit)
If you move the #if, etc. code to the first column, the syntax highlightning (in Igor, not here in the forum) will be nicer.

Function igortest()

    Make/I/O/N = 1E7 RawData = p
    Variable start = startmstimer
 
#if (igorversion() >= 7.0)
     //stuff that will only work with Igor 7
     MatrixOp/O result = bitShift(RawData,-25)
#else
     //different stuff that will work with igor 6 versions
     MatrixOp/O result = RawData/33554432
#endif
 
    Variable stop = stopmstimer(start)/1000000
    Print stop
End
Depending on the nature of your functions, this form may be preferable

#if (igorversion() > 6.99)
    //stuff that will only work with Igor 7
Function igortest()
 
    Make/I/O/N = 1E7 RawData = p
    Variable start = startmstimer

    MatrixOp/O result = bitShift(RawData,-25)
 
    Variable stop = stopmstimer(start)/1000000
    Print stop
 
End

#else
    //different stuff that will work with igor 6 versions
   
Function igortest()
 
    Make/I/O/N = 1E7 RawData = p
    Variable start = startmstimer
 
    MatrixOp/O result = RawData/33554432
 
    Variable stop = stopmstimer(start)/1000000
    Print stop
 
End

#endif