Rainer Deyke: > Wait, what? That's a static assert. How can it both assert and compile > with no errors?
You are right, what I meant is that if you remove the assert the program compiles with no errors (also note the number 5 that is different from 4 strings): enum string[5] data = ["green", "magenta", "blue" "red", "yellow"]; void main() {} > In the latter case, 'f' receives an expression (which > can be evaluated at compile time) as argument, I meant the concatenation to be evaluated at compile-time for sure, so there is zero runtime overhead. > so the string may not be > zero terminated. This is a critical difference if 'f' is a (wrapper > around a) C function. I hope Don's idea on this (thank you Don) will be enough. --------------------- Again, sorry for the tone of my original post of this thread. Bye, bearophile