C++(learning)
模板宏
例子,用于创建 get()、set()
#define WELD_ATTACH_INFO_SETGET(T, FUN, VAR) \
inline T get##FUN() const { return VAR; } \
inline void set##FUN(T t) { VAR = t; }
WELD_THRESHOLD_SETGET(int, InitId, init_id_)
方便引用
#ifndef USE_PLANDATA
#define USE_PLANDATA(d) \
auto &info = d.info; \
auto &wm = d.wm; \
auto &rm = d.rm
#endif
指针
指针流程控制
//.h
inline StepPtr setNextStep(const StepPtr& p) {
next_ = p;
return next_;
}
bool build(const planData& d) {
readConfigs(d);
if (!compute(d)) {
PRINT_ERROR << " Error Step: " <<typeid(*this).name() << std::endl;
return false;
}
else {
PRINT_INFO << " Finish Step: " << typeid(*this).name() << std::endl;
}
if (next_) {
next_->build(d);
}
return true;
}
//.cpp
read_welds
->setNextStep(divide_whole_reigon)
->setNextStep(divide_robots_regions)
//->setNextStep(redistribute_by_task)
->setNextStep(group_inner_sort)
->setNextStep(plan_robots_regions)
->setNextStep(update_weld_info)
->setNextStep(output_plan_result);
// 执行规划
return read_welds->build(d_);
方便定义
#ifndef CLASSPTR
#define CLASSPTR(C) \
class C; \
using C##Ptr = std::shared_ptr<C>;
#endif // !CLASSPTR
CLASSPTR(RobotsRegions)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器