This provides external config readers (e.g. BeesFilter) a standard
method to report configuration parse errors.
Signed-off-by: Zygo Blaxell <bees@furryterror.org>
#include <sstream>
#include <sys/statfs.h>
-#define THROW_CONFIG_ERROR(__key, __value, __message) do { \
- ostringstream __oss; \
- __oss << "configuration error: " << __key << " = \"" << __value << "\": " << __message; \
- throw invalid_argument(__oss.str()); \
-} while (false)
+unique_ptr<BeesConfig::DefaultMap> BeesConfig::s_defaults;
-unique_ptr<map<string, Innie>> BeesConfig::s_defaults;
BeesConfig::Register::Register::Register(const char *const version, const char *const text)
{
double bees_parse_ratio(const string& str);
/// @}
+
+/**
+ * Throw a @c std::invalid_argument exception formatted as a configuration error.
+ * Includes the key and the offending value in the message.
+ */
+#define THROW_CONFIG_ERROR(__key, __value, __message) do { \
+ std::ostringstream __oss; \
+ __oss << "configuration error: " << (__key) << " = \"" << (__value) << "\": " << (__message); \
+ throw std::invalid_argument(__oss.str()); \
+} while (false)