निम्न प्रकार की विशेषता को देखते हुए, मैं std::pair
एस के साथ Fields
कैसे प्रारंभ कर सकता हूं?किसी प्रकार की विशेषता के स्थिर std :: unordered_map को कैसे प्रारंभ करें?
template <>
struct ManagerDataTrait<Person>
{
static const std::unordered_map<std::string, std::string> Fields;
// ...
};
मैं एक लैम्ब्डा उपयोग करने की कोशिश, लेकिन दृश्य स्टूडियो का कहना है कि Fields
एक इकाई है कि स्पष्ट रूप से विशेष किया जा सकता है नहीं है।
template <>
const std::unordered_map<std::string, std::string> ManagerDataTrait<Person>::Fields = []{
std::unordered_map<std::string, std::string> fields;
fields.insert(std::make_pair("height", "FLOAT"));
fields.insert(std::make_pair("mass", "FLOAT"));
return fields;
};
अगर कोई लक्षण में इस तरह स्थिर सदस्यों का उपयोग करने के कोई रास्ता नहीं है, जो विकल्प मैं एक विशेषता में जानकारी स्टोर करना है? (Fields
में एक SQL डेटाबेस संरचना है।)
अद्यतन: सदस्य const
भी हो सकता है लेकिन यह बिंदु नहीं होना चाहिए।
अपने लैम्ब्डा के लिए कुछ काम करने के लिए वास्तव में लैम्ब्डा _run_ करने की आवश्यकता होगी, लेकिन आप ऐसा करने के लिए प्रयास नहीं किया है कि (आपने अभी लैम्ब्डा से हैश मैप बनाने की कोशिश की है, जो मान्य नहीं है, लेकिन निश्चित रूप से लैम्ब्डा नहीं चलाता है।) –