Releases: configcat/cpp-sdk
Releases · configcat/cpp-sdk
v4.0.6
v4.0.5
v4.0.4
v4.0.3
v4.0.2
v4.0.1
v4.0.0
Added
- Support for the new Config JSON v6 format: updated the config model and implemented new features in setting evaluation logic.
- Overhaul setting evaluation-related logging and make it consistent across SDKs.
- Improve consistency of config JSON deserialization error reporting.
- Performance improvements to setting evaluation (building of evaluation log is expensive, so it is skipped when info level logging is turned off).
Breaking changes
ConfigCatClient.getreturnsstd::shared_ptr<ConfigCatClient>instead of raw pointer.getValuefunctions expectconst std::shared_ptr<ConfigCatUser>&as user param instead of const raw pointer.- The generic
getValuefunction returnsstd::optional<Value>instead ofstd::shared_ptr<Value>. In case of any failure,std::nulloptwill be returned. getKeyAndValuefunction returnsstd::optional<KeyValue>instead ofstd::shared_ptr<KeyValue>.Hookscallback changes:onErrorreports the occurred exception withconst std::exception_ptr&argument.onFlagEvaluatedcallback's argument is changed toconst EvaluationDetailsBase&fromconst EvaluationDetails&.
- Renamed
RolloutRuletoTargetingRule. - Renamed
RolloutPercentageItemtoPercentageOption. EvaluationDetailschanges:matchedEvaluationRuleis renamed tomatchedTargetingRule.matchedEvaluationPercentageRuleis renamed tomatchedPercentageOption.- Introduced
std::exception_ptr errorException. - Introduced
std::shared_ptrandstd::optionaltypes instead of const ref/pointers.
- Introduced
ResponseErrorCodeinstead ofbool operationTimedOutinResponsestruct. - Logging changes:
- Log level names are now in capital format to follow other ConfigCat SDKs.
- The
Logfunction now getsconst std::exception_ptr& exceptionas an argument.unwrap_exception_messagefunction can be used to get the message of this exception.
- The
custominit parameter ofConfigCatUsernow acceptsstd::string,double,std::chrono::system_clock::time_point,std::vector<std::string>typed values, not just strings. This allows the usage of various types in the user object's custom attributes. - Introduced
datetime_to_isostringandmake_datetime(int year, int month, int day, int hour, int min, int sec, int millisec)helpers intimeutils.h
v3.2.0
- Introduced
CONFIGCAT_USE_EXTERNAL_NETWORK_ADAPTERcmake option andCONFIGCAT_EXTERNAL_NETWORK_ADAPTER_ENABLEDcpp define. If you turn it on, the cpp-sdk won't include thelibcurllibrary. In this case, in the ConfigCat options you should add a custom http session adapter. ConfigCat will use this custom adapter for network requests.