C ++ 17是2017年批准的C ++标准的名称。它基于以前的C ++ 14标准,改进了核心语言和标准库,并添加了一些新的语言功能。
我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // 这里的问题是,如何声明 std::map,即 ref_maps; 标准::地图 我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // here is the question, how to declare the std::map, i.e. ref_maps; std::map<std::string, std::tuple<SomeUncertainType, AnotherUncertainType>> ref_maps; // one type msgType1 msg1_t; // = ...with some value assigned; msgType1::SharedPtr msg1_p; //-> ...with some value assigned, and notice, here is a SharedPtr std::string topic_name1 = "t1" // another type msgType2 msg2_t; msgType2::SharedPtr msg2_p; std::string topic_name1 = "t2" ref_maps[t1] = std::make_tuple(msg1_t, msg1_p); ref_maps[t2] = std::make_tuple(msg2_t, msg2_p); 这是否可能或任何其他方法可以实现类似的结果? 与某些基类不同的是 ros2 msgTypes( 和 ::SharedPtr) ,这样我就可以声明 ref_maps ,如下所示: std::map<std::string, std::tuple<MsgTypeBase, MsgTypePtrBase>> ref_maps; 如果需要使用一个类,该类的实例在任何给定时间都保存一种类型的值或其替代值(前提是它们已知),则标准解决方案是std::variant。 它本质上代表了一个类型安全的联合,它提供了一组成员和非成员函数,使一种类型和另一种类型之间的切换更简单。此外,值始终是静态分配的,避免了动态分配的内存和性能开销。 std::map<std::string, std::pair<std::variant<T1, T2>, std::variant<T1, T2>>>; 如果可能的类型对只有(T1,U1),(T2,U2),则可以按以下方式修改定义。 std::map<std::string, std::variant<std::pair<T1, U1>, std::pair<T2, U2>>>;
如何使用不同类型的ros2 msg制作topic_name(std::string)的std::map?
我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // 这里的问题是,如何声明 std::map,即 ref_maps; 标准::地图 我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // here is the question, how to declare the std::map, i.e. ref_maps; std::map<std::string, std::tuple<SomeUncertainType, AnotherUncertainType>> ref_maps; // one type msgType1 msg1_t; // = ...with some value assigned; msgType1::SharedPtr msg1_p; //-> ...with some value assigned, and notice, here is a SharedPtr std::string topic_name1 = "t1" // another type msgType2 msg2_t; msgType2::SharedPtr msg2_p; std::string topic_name1 = "t2" ref_maps[t1] = std::make_tuple(msg1_t, msg1_p); ref_maps[t2] = std::make_tuple(msg2_t, msg2_p); 这是否可能或任何其他方法可以实现类似的结果? 与某些基类不同的是 ros2 msgTypes( 和 ::SharedPtr) ,这样我就可以声明 ref_maps ,如下所示: std::map<std::string, std::tuple<MsgTypeBase, MsgTypePtrBase>> ref_maps; 如果需要使用一个类,该类的实例在任何给定时间都保存一种类型的值或其替代值(前提是它们已知),则标准解决方案是std::variant。 它本质上代表了一个类型安全的联合,它提供了一组成员和非成员函数,使一种类型和另一种类型之间的切换更简单。此外,值始终是静态分配的,避免了动态分配的内存和性能开销。 std::map<std::string, std::pair<std::variant<T1, T2>, std::variant<T1, T2>>>; 如果可能的类型对只有(T1,U1),(T2,U2),则可以按以下方式修改定义。 std::map<std::string, std::variant<std::pair<T1, U1>, std::pair<T2, U2>>>;
C++ 中指向不同变量的指针是否可以相等,特别是在常量求值期间? 请考虑以下程序(自问题第一版以来已简化): constexpr b...
SFML 库在创建第一个 AudioResource 类型的对象时初始化音频设备,并在最后一个对象被销毁时取消初始化它。 我正在尝试简化该代码,正如我所说......
如何使tag_invoke CPO统一处理与元谓词/概念匹配的类型以及包装在reference_wrapper中的类型?
(我最感兴趣的是 c++17 解决方案,即使你看到我使用 std::unwrap_ref_decay;想象一下我已经在我的 C++17 代码中复制并粘贴了可能的实现。另一方面手,...
使用 future 向量时“进程已完成,退出代码 -1073740791 (0xC0000409)”
背景 作为 binance-websocket api 和 std::future 使用的新手。我编写了一个程序来测试本地主机和币安服务器之间的时间差,并获取网络延迟。 我推我的...
如何修复`指定的类型不符合Cpp17MoveInsertable的要求`?
我已经构建了一个自定义类,并遵循(据我所知)这篇文章中描述的三规则:https://stackoverflow.com/a/51864979/2184449 我有一个 MyClass 的自定义定义: :~
我想更新具有以下签名的转换函数: 模板 bool Convert(const In& p_in, Out& p_out); // 如果
我是 CRTP 和大量模板化代码的新手,所以我不确定这是否可能...... 我有一个模板类如下: 模板 类基本类型组件 { 民众: 模板...
我想在我的 C++ 代码中谨慎使用英特尔 IPP(集成性能原语)库函数。我可以观察到,虽然这些函数是 C 风格的函数,但有一个逻辑 p...
C++ 映射:如何获取用于将元素添加到 std::map 的密钥?
我正在使用包含例如的键创建一个 std::map兼作标识符。但是,我需要密钥有一些余地,即容差,以将密钥标识为“相同”。 我成功了
我有以下宏,可以有条件地生成和初始化类的成员: #ifdef LIFETIME_TRACKING #define DEFINE_TRACKER_MEMBER() 可变::LifetimeTracker m_tracker #定义
我正在尝试访问 std::variant 中保存的类的方法。不幸的是它抛出以下错误: 类“std::variant”没有名为“function”的成员 代码: A类{ 私人的: ...
问题多态性、向下转型和虚函数似乎很模糊,我不确定它是相同还是不同的问题。一个答案似乎回答了我的问题(是的),但为了确保......
通过 std::list 的前向声明来测试类型 T 是否是 std::list 是否足够?
对于测试类型 T 是否为 std::list 的编译时检查器,我想出了这个模板: #包括; 模板 结构 is_std_list: std::false_type {}; 温度...
在内联命名空间之外的空间中对内联命名空间内的函数进行模板特化是否有效? 例如,这会编译吗? 命名空间A { 内联命名空间...
为什么第二次调用 std::distance 会给出与 std::list 不同的结果?
我最近在 std::distance 上遇到了一个奇怪的行为。它没有给出预期的结果,或者我理解不正确。该标准没有对此提供太多细节 https://en.cppreference.com/w/cpp/
为什么对 std::distance 的第二次调用会给出不同的结果?
我最近在 std::distance 上遇到了一个奇怪的行为。它没有给出预期的结果,或者我理解不正确。该标准没有对此提供太多细节 https://en.cppreference.com/w/cpp/
错误:‘?:’的操作数有不同的类型‘int’和‘Person’
我试图拥有一个函数,我可以在其中检查传入的类型是类对象还是只是变量数据类型。根据这个事实的情况,我会用它做一些事情。怎么...
如何对指向派生类实例的指针的 std::vector 的元素进行排序
我正在编写一个使用派生类实例指针数组的 2D RPG 游戏。为了清楚起见,我提供了一个 C++ 代码示例。 我想根据