首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapper.AddCommonType<Containers::MultiSet<int>> ():ObjectOrientedMapper和Multiset失败;

mapper.AddCommonType<Containers::MultiSet<int>> ():ObjectOrientedMapper和Multiset失败;
EN

Stack Overflow用户
提问于 2022-11-10 21:16:16
回答 1查看 19关注 0票数 1

AddCommonType目前不支持MultiSet (或SortedMultiSet),尽管它支持大多数Stroika容器类。

例:

代码语言:javascript
复制
`ObjectVariantMapper ovm;
ovm.AddCommonType<Containers::Set<String>> (); // works fine
ovm.AddCommonType<Containers::MultiSet<String>> (); // fails`

产生

'Stroika::Foundation::DataExchange::ObjectVariantMapper::MakeCommonSerializer_':6重载中没有一个能转换所有参数类型PS2 C:\work\PS2\ThirdPartyComponents\Stroika\StroikaRoot\Library\Sources\Stroika\Foundation\DataExchange\ObjectVariantMapper.inl

EN

回答 1

Stack Overflow用户

发布于 2022-11-10 21:51:10

此问题将在Stroika数据库https://stroika.atlassian.net/browse/STK-951中跟踪。

而且它是固定的,用于选通v2.1.9 (https://github.com/SophistSolutions/Stroika/releases/tag/v2.1.9 )。

修复是ObjectVariantMapper::AddCommonType ()支持的MultiMap<>。

但是,对于在ObjectVariantMapper::MakeCommonSerializer_WithAdder().中不支持内置的容器类型,如果它们可以通过容器::适配器::加法器添加,则可以使用ObjectVariantMapper添加序列化程序。

例如,这是在Stroika回归测试中进行的:

代码语言:javascript
复制
    ObjectVariantMapper mapper;
    MultiSet<int>       s1;
    mapper.AddCommonType<CountedValue<int>> ();
    mapper.Add (ObjectVariantMapper::MakeCommonSerializer_WithAdder<MultiSet<int>> ());
    s1.Add (2);
    s1.Add (2);
    s1.Add (3);
    VariantValue  sAsVariant         = mapper.FromObject (s1);
    MultiSet<int> mappedBackToObject = mapper.ToObject<MultiSet<int>> (sAsVariant);
    VerifyTestResult (s1 == mappedBackToObject);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74395388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档