Since GH is implemented as a .NET plug-in you’ll be ending up writing your C++ code as a shared library and then write a wrapper library using P/Invoke.
Note though that on the Mac there is no C++ SDK for Rhino, so you won’t be able to use that. If you write ‘pure’ C++ code then you can do that. If you intend to use the Rhino C++ SDK you’ll be confined to Windows.
Anyway, for getting C++ code into GH the keyword is P/Invoke.