1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| variant<true_type, false_type> is_integral_(bool now) { if (now) { return true_type{}; } else { return false_type{}; } }
void fun(int a, int c) { auto has_a = is_integral_(a == 0); std::visit( [&](auto has_a_) { if constexpr (has_a_) { static int b = printf("1l"); } else { static int b = printf("2l"); } }, has_a); if(a == 0) { for... }else { for... } }
int main() { fun(1, 3); fun(0, 3); }
|