Sure!
The only things you can’t do are tie it into the engine and refelection system; and thus you can’t expose them to blueprints.
The biggest headaches here are that you are working in the standard C++ world and must do your own memory management; and that you’ll have to make conversion methods to transfer any data from the non-engine exposed portions to the engine exposed portions.
Your other option, since UE4 is completely open source, is that you can build support for the types you want to use into the engine; and if you want to be really nice you can commit that to the engine proper and then all UE4 developers can benefit.