diff --git a/cmdline.h b/cmdline.h index de9eaf7..c0cc170 100644 --- a/cmdline.h +++ b/cmdline.h @@ -36,7 +36,9 @@ #include #include #include +#ifdef __GNUC__ #include +#endif #include namespace cmdline{ @@ -104,11 +106,17 @@ Target lexical_cast(const Source &arg) static inline std::string demangle(const std::string &name) { - int status=0; - char *p=abi::__cxa_demangle(name.c_str(), 0, 0, &status); - std::string ret(p); - free(p); - return ret; +#ifdef _MSC_VER + return name; +#elif defined(__GNUC__) + int status = 0; + char* p = abi::__cxa_demangle(name.c_str(), 0, 0, &status); + std::string ret(p); + free(p); + return ret; +#else +#error "Unsupported compiler. Please implement demangle function for this compiler." +#endif } template