Skip to content

Instantly share code, notes, and snippets.

@JakobOvrum
Created March 1, 2012 15:00
Show Gist options
  • Save JakobOvrum/1950300 to your computer and use it in GitHub Desktop.
Save JakobOvrum/1950300 to your computer and use it in GitHub Desktop.
Range!() template for static range foreach
template Range(int from, int to) if(from < to)
{
alias RangeImpl!(from, to - 1) Range;
}
template RangeImpl(int lowerLimit, int iterator, tail...)
{
static if(iterator < lowerLimit)
alias tail RangeImpl;
else
alias RangeImpl!(lowerLimit, iterator - 1, iterator, tail) RangeImpl;
}
void main() {
foreach(n; Range!(0, 0xFF))
pragma(msg, n);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment