-
Type:
Task
-
Resolution: Declined
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Service Arch
-
None
-
None
-
None
-
None
-
None
-
None
-
None
For example, I want to define the following:
types:
fcv_string:
bson_serialization_type: string
description: >-
Ensures that the version strings in featureCompatibilityVersion documents
serialize/deserialize to a fixed set of string values
cpp_type: "ServerGlobalParams::FeatureCompatibility::Version"
serializer: "::mongo::FeatureCompatibilityVersionParser::serializeVersion"
deserializer: "mongo::FeatureCompatibilityVersionParser::parseVersion"
ServerGlobalParams::FeatureCompatibility::Version is of type C++ enum, which has no default constructor/initialize value. Therefore, IDL ends up generating C++ code that will not compile:
build/opt/mongo/db/commands/set_feature_compatibility_version_gen.cpp:42:50: error: variable 'localCmdType' is uninitialized when used here [-Werror,-Wuninitialized]
SetFeatureCompatibilityVersionCommand object(localCmdType);
^~~~~~~~~~~~
build/opt/mongo/db/commands/set_feature_compatibility_version_gen.cpp:41:5: note: variable 'localCmdType' is declared here
ServerGlobalParams::FeatureCompatibility::Version localCmdType;
^
It would be nice for IDL to support C++ Enum types in this regard.
- related to
-
SERVER-65412 Complete TODO listed in SERVER-50101
-
- Open
-
-
SERVER-62219 Complete TODO listed in SERVER-50101
-
- Backlog
-