sts :: runtime_error异常的wstring包装器?

时间:2017-12-07 14:32:34

标签: c++ c++11 exception wstring

假设我在某处定义了这些函数:

std::string ws_to_s(const wchar_t*);
std::string ws_to_s(const std::wstring&);
std::wstring s_to_ws(const char*);

我写了这堂课:

class runtime_error_w : public std::runtime_error {
public:
  runtime_error_w() = default;

  runtime_error_w(const wchar_t* what_arg)
    : runtime_error(ws_to_s(what_arg)) { }

  runtime_error_w(const std::wstring& what_arg)
    : runtime_error(ws_to_s(what_arg)) { }

  virtual const std::wstring what_w() const noexcept {
    return ws_to_s(what());
  }
};

到目前为止,这对我有用,但这种方法有问题吗?

请注意,what_w()会返回std::string个对象,而不是const char*

1 个答案:

答案 0 :(得分:0)

根据问题下方的评论,我同意使用此课程糟糕的主意,因为在构建bad_alloc时可能会wstring提升