16#include <unordered_map>
26 using map_type = std::unordered_map<std::string, ActorBlueprint>;
33 using const_iterator =
decltype(carla::iterator::make_map_values_const_iterator<map_type::const_iterator>(map_type::const_iterator{}));
37 explicit BlueprintLibrary(
const std::vector<rpc::ActorDefinition> &blueprints);
53 using diff_t = std::iterator_traits<const_iterator>::difference_type;
54 return std::next(
_blueprints.begin(),
static_cast<diff_t
>(pos))->second;
这个类用于禁止拷贝构造函数和赋值操作,但允许移动构造函数和赋值操作
const_iterator end() const
map_type::key_type key_type
SharedPtr< BlueprintLibrary > FilterByAttribute(const std::string &name, const std::string &value) const
std::unordered_map< std::string, ActorBlueprint > map_type
BlueprintLibrary(BlueprintLibrary &&)=default
map_type::mapped_type value_type
const value_type * const_pointer
decltype(carla::iterator::make_map_values_const_iterator< map_type::const_iterator >(map_type::const_iterator{})) const_iterator
const_iterator begin() const
BlueprintLibrary & operator=(BlueprintLibrary &&)=default
const value_type & const_reference
BlueprintLibrary(const std::vector< rpc::ActorDefinition > &blueprints)
map_type::size_type size_type
BlueprintLibrary(map_type blueprints)
const_pointer Find(const std::string &key) const
SharedPtr< BlueprintLibrary > Filter(const std::string &wildcard_pattern) const
过滤 id 或标签与 wildcard_pattern 匹配的 ActorBlueprint 列表。
const_reference at(const std::string &key) const
const_reference operator[](size_type pos) const
static auto make_map_values_const_iterator(It it)
创建一个迭代器,该迭代器提供对map值的const引用的遍历。
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。