STD::IS_INVOCABLE_R(3cxx)

✨ NAME ✨

std::is_invocable_r< _Ret, _Fn, _ArgTypes > β€” bestie, it's literally std::is_invocable_r, and it lives in the <type_traits> header of libstdc++'s manual section 3cxx πŸ’–


🌸 SYNOPSIS 🌸

#include <type_traits>

That's it. That's the whole doorway. Go off, queen πŸ‘‘


πŸ¦‹ DETAILED DESCRIPTION πŸ¦‹

Ok so picture this: you've got a callable, you've got some argument types, and you've got a return type you want. And you're sitting there like… "can I even invoke this thing with these args and get a result that plays nice with _Ret?" That's the vibe check, and std::is_invocable_r is the one running it πŸ’…

Here's the shape of it, no cap:

template<typename _Ret, typename _Fn, typename... _ArgTypes>
    struct std::is_invocable_r< _Ret, _Fn, _ArgTypes >"std::is_invocable_r

The way that signature is giving templated struct, lowkey iconic. _Ret is the return type you're asking about, _Fn is the thing you wanna call, and _ArgTypes is the pack of argument types you'd be calling it with β€” a variadic pack, so it can be zero args, one arg, or a whole squad of them 🫢

It's a type trait, so it's main character energy at compile time β€” no runtime here, bestie, this is all happening while the compiler's still doing its hair ✨


πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for libstdc++ from the source code. Not me, not you, not a human β€” the machine did it fr fr 😭


and that's the whole page, bestie!! this one came straight off the libstdc++ manual, section 3cxx, and yeah β€” the footer is literally the same title again because Doxygen said "why not" πŸ™ˆ stan a template trait πŸ’–