Starting with a meta-makefile in Premake is one way to go about learning C++, I suppose. But it seems to add an unnecessary layer of complexity and abstraction for beginners. And shared libraries, while an important thing to know about for many real-world projects, are not really part of the C++ language at all.
Yes, eventually you will probably want to figure out how to do cross-platform development. But if you really want to just learn the C++ language, I would start with an actual IDE, such as Visual Studio or Xcode, and just stick to one platform.
Or better yet, just use an online environment such as cpp.sh or ideone.com or codechef.com.
Unlike with real C++ exceptions, the "finally" block is not entered if a "return" is used inside the "catch" block. And, of course, in this system, exceptions can be caught only in the function from which they are thrown, unlike real C++ exceptions, which can be caught anywhere in the call stack. But the solution provided here is good, and is probably the best possible one for C.
Yes, eventually you will probably want to figure out how to do cross-platform development. But if you really want to just learn the C++ language, I would start with an actual IDE, such as Visual Studio or Xcode, and just stick to one platform.
Or better yet, just use an online environment such as cpp.sh or ideone.com or codechef.com.