Fix compile error on MSVC
Use std::string instead of const char* in error classes to maintain
consistency and allow for future expansion