I am currently developing a lightweight game engine in C++ however I am developing on a Mac. Originally, I was using Bootcamp however I wanted to try to implement it on Mac using premake. I want to implement some Metal support into my engine and I know I need to use Objective-C++. Is there any way I can create a metal window in Objective-C++ and tie it into my C++ Code?
There's an existing Metal wrapper library for C++, https://github.com/naleksiev/mtlpp (MIT licensed). I don't have any personal experience with it yet, so I can't recommend it as such, but the code looks simple enough that if you ran into any problems or limitations with it you could probably fix them or extend it without much trouble.
There's an example which also creates a window, so at least the basics of that are covered: https://github.com/naleksiev/mtlpp/blob/master/examples/04_window.cpp
As @warrenm has pointed out in the comments, the key to creating "glue" between Objective-C and C++ is to keep the headers "clean" by not having any Objective-C keywords or types (outside of those defined in the runtime headers) in them.