Add casts back into the macro (removed in [0]), removing the need for
them to be manually included, use `decltype(..)` for C++.
[0]: 129f78eee7
Add casts back into the macro (removed in [0]), removing the need for
them to be manually included, use `decltype(..)` for C++.
[0]: 129f78eee7