| 12 | // Functions to apply binary operations in compile-time |
| 13 | template<typename T> |
| 14 | inline T optDoOperation(CmdID cmd, T a, T b) |
| 15 | { |
| 16 | if(cmd == cmdAdd) |
| 17 | return a + b; |
| 18 | if(cmd == cmdSub) |
| 19 | return a - b; |
| 20 | if(cmd == cmdMul) |
| 21 | return a * b; |
| 22 | if(cmd == cmdLess) |
| 23 | return a < b; |
| 24 | if(cmd == cmdGreater) |
| 25 | return a > b; |
| 26 | if(cmd == cmdGEqual) |
| 27 | return a >= b; |
| 28 | if(cmd == cmdLEqual) |
| 29 | return a <= b; |
| 30 | if(cmd == cmdEqual) |
| 31 | return a == b; |
| 32 | if(cmd == cmdNEqual) |
| 33 | return a != b; |
| 34 | return optDoSpecial(cmd, a, b); |
| 35 | } |
| 36 | template<typename T> |
| 37 | inline T optDoSpecial(CmdID cmd, T a, T b) |
| 38 | { |
no test coverage detected