3 ms·
> You very conveniently skipped that you cant build async /await in C without modifying the language. but async / await is semantics, not syntax, thus complete
by jcelerier 7y ago
> You very conveniently skipped that you cant build async /await in C without modifying the language.
but async / await is semantics, not syntax, thus completely irrelevant to the conversation. you want an example of building async / await into the syntax of C as a library ? tada !
void* async(...) { return NULL; }
void await(void* ptr) { }
int main(int argc, char** argv) {
void* handle = async(printf("foobar"));
await(handle);
}
or maybe you would prefer the more "modern" version, still compatible with pure C89 syntax though ?
#define async
#define await (void)
int main(int argc, char** argv) {
auto x = async printf("foobar");
/* wow, you can even compose it ! */
auto y = async 2 * x;
await x;
}
please go on, this is super entertaining !
- random314 7y agoWow man! your async-await code actually does nothing! I don't think I have argued so much and so far with an idiot!