I would like to understand the request first. Neither
ProccessRow() nor OptimizedProcessTable() take isUseField as
template parameters. Besides, isUseField is generated at
runtime. No, I don't understand. :)
Yes, isUseField is generated at runtime. For example, user can
select the column that he want to sort. And he chose the first
column. This means that isUseField[0] = true; isUseField[1] =
false. The function getIndex must return 1. And want to call
compile-time generated function
proccessRow_1 (..)
{
//do something only with the field1 without additional checks.
}
instead of full version proccessRow. I admit that too much
simplified example.
Can you show the C++ code perhaps on a simpler task? I would
expect D's compile-time features to be superior to C++'s in all
cases. (And I would like to be educated if it is not so. :) )
My example is a simplification of this
https://github.com/AlexeyAB/cpp_find_order/blob/06a80340ff403c4693bfe0ff8b80584f029c71a3/main.cpp.
I gave a link to the most simple implementation of the three
versions of the program. Code looked slightly horrible for me at
first:)
> Or may be, this optimization is meaningless in D...?
I doubt it.
I also doubt it.
Full version my very simplified example such task:
https://gist.github.com/Vladimir-Z/1a1755ce91cb0e7636b5