У меня есть ситуация, когда моему методу требуется объект nlohmann :: json в качестве аргумента.
class MyClass {
public:
MyClass();
~MyClass();
bool parse(const nlohmann::json& configuration);
};
Мой нынешний подход к получению JSON, что хорошо, следующий :
std::string filePath = "../folder/folder/file.json"
std::ifstream file(filePath);
nlohmann::json configJSON = nlohmann::json::parse(file);
MyClass object;
object.parse(configJSON);
Моя проблема в том, что компилятор принимает следующий фрагмент кода, но я хочу, чтобы он различал std::string
и nlohmann::json
, чтобы убедиться, что я уже передаю JSON анализируемый объект, а не случайная строка.
std::string filePath = "../folder/folder/file.json"
MyClass object;
object.parse(filePath);
Затем в методе разбора я получаю ошибку времени выполнения при запуске программы, потому что, конечно, я пытаюсь получить доступ к строке способом, который невозможен .
Есть ли способ сделать это либо в коде, либо с флагом компиляции в CMakeList.txt?