I noticed the BrokenPromise definition in facebook folly::future library, I cannot understand the purpose of the explict BrokenPromise(const char* type) constructor here? is it necessary?
class FOLLY_EXPORT BrokenPromise : public PromiseException {
public:
explicit BrokenPromise(const std::string& type)
: PromiseException("Broken promise for type name `" + type + '`') {}
explicit BrokenPromise(const char* type) : BrokenPromise(std::string(type)) {}
};
https://github.com/facebook/folly/blob/master/folly/futures/Promise.h#L47