Hacker News new | ask | show | jobs
by nyanpasu64 1588 days ago
> This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer

I get this issue a lot on modern compilers, when trying to write switch/macro-based coroutines (https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html) in C++. Does anyone have a workaround? (I hope it doesn't involve C++20 coroutines... I still don't understand them.)

1 comments

If your variable is a class without a trivial default constructor, then you're out of luck. Otherwise, the workaround is to not initialize the variable, and to instead assign to it immediately after declaring it (e.g., replace "int x = 42;" with "int x; x = 42;").