You need to fork/exec a program. You need to pass CommandLine options based on variable bound information. You want to be concise.
Example:
int main(int, char**) { int geometry = metrics::large; const char* args[] = { "program", // arg0 is always the program name "-geometry", // specify the geometry false ? 0 : metrics::large == geometry ? "1024x768" : metrics::small == geometry ? "640x480" : "default", 0}; // error checking omitted for brevity execv(args[0], args); return 0; }
Is it just me, or is this TooCleverByHalf?? I think the equivalent code without chained ternaries is just as readable.
A collegue pointed out that it isn't the simplest possible thing, and that an IdiotProgrammer doing maintenance might not get it...