首页 > 编程语言 >C++(learning)

C++(learning)

时间:2024-02-06 11:45:50浏览次数:36  
标签:return CLASSPTR setNextStep C++ learning FUN define build

 

模板宏

例子,用于创建 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)

 

标签:return,CLASSPTR,setNextStep,C++,learning,FUN,define,build
From: https://www.cnblogs.com/wxk1213/p/18009463

相关文章

  • Windows下如何使用 Sublime Text 4 配置 C/C++ 环境(使用LSP-clangd)
    1软件安装1.1SublimeText4安装及PackageControl安装略,请自行百度/必应/谷歌。1.2Clang环境安装1.2.1Clang下载在LLVMMinGW下载最新版Clang编译器,此处应根据个人电脑系统及版本选择,本文选择llvm-mingw-20231128-ucrt-x86_64.zip,后续文件名将以此为例。各版本......
  • Reinforcement Learning Chapter2
    本文参考《ReinforcementLearning:AnIntroduction(2ndEdition)》SuttonK臂赌博机问题描述:你有k个选择,每个选择对应一个奖励,收益由所选动作决定的平稳概率分布产生,目标为最大化某段时间内的总收益期望。联系我们在chapter1中提到的reward,value,action等概念,我们在这个K臂赌博机......
  • C++编程练习||实现分数类Fraction1、实现分数的+,-,*,/ 2、逻辑运算==、!=、<、<=、>、>
    题目:实现分数类Fraction  classFraction{   intnumerator,denominator;   public:   ....  };  要求:1、实现分数的+,-,*,/2、逻辑运算==、!=、<、<=、>、>=6种运输符号。3、实现输出<<,输入 >>操作符重载。  样例1输入:   12 ......
  • c++的类开发第一篇
    class_1什么是接口?类就是一种公共接口,公众(public)是使用类的程序,交互系统由类对象组成,而接口由编写类的人提供的方法组成。接口让程序员能够编写与类对象交互的代码,从而让程序能够使用类对象。例如,要计算string对象中包含多少个字符,您无需打开对象,而只需使用string类提供的s......
  • c++利用 STL解析ini 文件
    ini文件是InitializationFile的缩写,即初始化文件,通常存放的是一个程序的初始化信息,是Windows的系统配置文件所采用的存储格式,统管windows的各项配置。ini文件的后缀名不一定是.ini,也可以是.cfg、.conf或者是.tx*。ini文件是技术人员经常用到的一种系统配置方法,如何读取和快速识别......
  • C++中的typedef和define的区别
    我们来看看typede和define的区别define是C++中用来定义宏的,也就是宏定义用的,宏在代码中就是纯粹进行简单的替换,这个替换过程不是在C++的编译过程中进行的,而是在这之前的预处理过程中就已经完成了.因为它不是在编译过程中进行,所以如果有潜在的错误,很难发现.typedef说白了,就是起......
  • c++生成随机数
    产生随机数的叫随机数生发器生成随机数constunsignedzseed=time(0);voidsolve(){ //随机数生发器 mt19937_64m{zseed}; //种子 rep(i,1,5) cout<<m()<<endl; return;}重排序列constunsignedzseed=time(0);mt19937_64zgen{zseed};voidsolve(){ ve......
  • 从C向C++8——多态
    一.多态基础面向对象程序设计语言有封装、继承和多态三种机制,这三种机制能够有效提高程序的可读性、可扩充性和可重用性。“多态(polymorphism)”指的是同一名字的事物可以完成不同的功能。多态可以分为编译时的多态和运行时的多态。前者主要是指函数的重载(包括运算符的重载)、对重载......
  • c++11的左值 右值的笔记
    在C++11的程序中,所有的值必须属于左值,将亡值,纯右值之一。将忘值则是c++11新增的跟右值引用相关的表达式,这样表达式通常是将要被移动的对象(以为他用),比如返回右值引用T&&的函数返回值,std::move的返回值,或者转换为T&&的类型的转换函数的返回值。而剩余的,可以标识函数、对象的值都属......
  • C++类和对象
    1.类和对象1.1声明类classPerson{private:stringname;intage;};1.2作为类实例的对象1.3使用句点运算符访问成员1.4使用指针运算符(->)访问成员2.关键字public与private3.构造函数3.1构造函数重载3.2默认构造函数:只要不需要......