我有一个std::map,关键是std::shared_ptr<Foo>,值是std::unique_ptr<Bar>,其中Foo和Bar与第三方库非常不同。我正在使用这个std::map对象作为内存缓存。我目前有以下情况:{
const Bar* TryGetBarValue(std::shared_ptr<Foo> f
我正在使用代码生成器,其中我无法直接获取包装在shared_ptr中并放在std::map中的值的类名。我遇到了这样一种情况:我需要创建新的map对象,但是如果不能访问classname,我就不能执行有效的对象构造函数调用。我尝试使用映射操作符at[],它调用了值构造函数,但它调用了shared_ptr<T>构造函数,并且内部的对象保持未初始化。::map<int, A> mapIntToA;