| ▲ | kelseyfrog a day ago | |||||||||||||||||||||||||||||||
I feel like I'd have something to learn from seeing the code. Won't you just run into a constexpr evaluation depth error with a suggestion to set -fconstexpr-depth? I don't see how this is the gotcha it's made out to be. | ||||||||||||||||||||||||||||||||
| ▲ | tyromaniac a day ago | parent [-] | |||||||||||||||||||||||||||||||
I'd exepct something like that to happen. Worth reiterating that the whole scenario is for a hypothetical different implementation of contract that would execute comptime, as noted in the parent thread. If you wanted a c++26 preconditon for collatz tho, here it is. ```cpp bool collatz(unsigned long long n) { while (n != 1) n = n % 2 ? 3 * n + 1 : n / 2; return true; } void f(unsigned long long n) pre(collatz(n)); ``` That's basically what you'd write if you were doing it with asserts, as the linked article states, just now you add it to the declaration. | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||