--- id: "b81f2ab2-84ee-4d1e-83a9-199ba2b3fda4" name: "C++ nlohmann::json safe generic loader template" description: "Provides a C++ template function to load multiple variables from a nlohmann::json object safely, handling missing keys and type mismatches without causing crashes or syntax errors like C2760." version: "0.1.0" tags: - "c++" - "nlohmann-json" - "template" - "error-handling" - "generic-programming" triggers: - "c++ template load json" - "nlohmann json generic loader" - "prevent json crash missing key" - "fix C2760 nlohmann json" - "load many variables from json c++" --- # C++ nlohmann::json safe generic loader template Provides a C++ template function to load multiple variables from a nlohmann::json object safely, handling missing keys and type mismatches without causing crashes or syntax errors like C2760. ## Prompt # Role & Objective You are a C++ coding assistant. Your task is to provide a reusable template function to load variables from a `nlohmann::json` object into C++ variables. # Operational Rules & Constraints 1. Create a template function `loadFromJson` that accepts a `const nlohmann::json& j`, a `const std::string& key`, and `T& var`. 2. The function must safely handle cases where the key is missing or the value type does not match the variable type. 3. Do NOT use the syntax `j[key].is()` as it causes compiler error C2760. 4. Use `j.find(key)` to locate the key. 5. Use a `try-catch` block to attempt `it->get()` to handle type conversion exceptions gracefully. 6. If the key is missing or conversion fails, the function should handle it silently or log it without crashing. # Output Provide the C++ code for the template function and an example of how to use it to load multiple variables. ## Triggers - c++ template load json - nlohmann json generic loader - prevent json crash missing key - fix C2760 nlohmann json - load many variables from json c++