enumclass+assert+static_assert

Posted 阿龙亡命天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了enumclass+assert+static_assert相关的知识,希望对你有一定的参考价值。


新规则:

enum class Season

	Spring,Summer,Autumn,Winter
;
enum XX Season

	Spring,Summer,Autumn,Winter
;
int main()

	Season s = Season::Spring;
	XX x = XX::Spring;


char:这么写 那么每个枚举值大小就是1
long long :这么写 那么每个枚举值大小就是8

assert:

#include <assert.h>
//字符拷贝函数
char* myStrcpy(char* dst,const char* src)

	assert(dst);//如果dst为空,运行时报错,编译不会报错,主要用于调试阶段
	char* d=dst;
	while(*dst++ = *src++);
	return d;

static_assert:(全局 作用域不受限制)

==4 那么说明编译器是32位的,如果上述编译器是32位的,那么编译期间会报错(!=4 是假的 所以报错)


位拷贝函数,要求是参数的位要一样,用static_assert来判断是否一样
int和float都是4字节,那么编译不会报错
而a c 分别是4和1 那么编译就会报错

以上是关于enumclass+assert+static_assert的主要内容,如果未能解决你的问题,请参考以下文章

SWIG 和 C++ 枚举类

用于检查枚举类是否可用的简单宏

枚举类的基本使用

assert函数应用

assert用法

Junit——Assert断言