当前位置: 首页 > news >正文

淮安做网站seo宁波做网站的公司

淮安做网站seo,宁波做网站的公司,丝袜怎么做的视频网站,wordpress插件安装目录1、宏定义实现简单的断言2、可变参数模板3、变量模板4、宏定义实现范围内的for循环5、模板实现函数对象6、宏定义实现作用域限定7、类型萃取模板1、宏定义实现简单的断言 #define ASSERT(expr) \if(!(expr)) { \std::cout << "assertion failed: " <&l…

目录

    • 1、宏定义实现简单的断言
    • 2、可变参数模板
    • 3、变量模板
    • 4、宏定义实现范围内的for循环
    • 5、模板实现函数对象
    • 6、宏定义实现作用域限定
    • 7、类型萃取模板

1、宏定义实现简单的断言

#define ASSERT(expr) \if(!(expr)) { \std::cout << "assertion failed: " << #expr << " at " << __FILE__ << ":" << __LINE__ << std::endl; \abort(); \}

该宏定义了一个简单的断言,如果表达式expr为false,则在标准错误流中输出错误消息,包括出错文件名和行号,并终止程序执行。

int main() {ASSERT(0);return 0;
}

输出

C:\Users\hanhandi\CLionProjects\untitled\cmake-build-debug\untitled.exe
assertion failed: 0 at C:/Users/hanhandi/CLionProjects/untitled/main.cpp:12

2、可变参数模板

template<typename T, typename... Args>
void print(T t, Args... args) {std::cout << t << " ";if constexpr (sizeof...(args) > 0)print(args...);
}

该函数使用可变参数模板,可以接受任意数量的参数,并依次输出到标准输出流中。

int main() {print("xx", "xxx", "xxxx");return 0;
}

输出

xx xxx xxxx

3、变量模板

template<typename T>
constexpr T pi = T(3.1415926535897932385L);

该模板定义了一个常量pi,表示圆周率并具有指定的精度。

int main() {char val = 0;std::cout << pi<int> << std::endl;std::cout << pi<float> << std::endl;std::cout << pi<double> << std::endl;std::cout << pi<long> << std::endl;return 0;
}

输出

3
3.14159
3.14159
3

4、宏定义实现范围内的for循环

#define for_range(i, begin, end) \for(auto i = begin; i < end; ++i)

该宏定义了一个基于循环变量和范围的for循环,避免了手动指定循环条件和步长的麻烦。

int main() {int i = 0;std::cout << i << std::endl;for_range(i, 0, 2) {std::cout << i << std::endl;}return 0;
}

输出

0
0
1

5、模板实现函数对象

template<typename T>
struct add_one {T operator()(T val) const {return val + 1;}
};

该模板定义了一个函数对象,用于将输入值加1。

template<typename T>
struct add_one {T operator()(T val) const {return val + 1;}
};int main() {int i = 0;float f = 1.2;std::cout << i << std::endl;std::cout << f << std::endl;add_one<int> addOneInt;add_one<float> addOneFloat;int res_i = addOneInt(i);float res_f = addOneFloat(f);std::cout << res_i << std::endl;std::cout << res_f << std::endl;return 0;
}

输出

0
1.2
1
2.2

6、宏定义实现作用域限定

#define UNIQUE_NAME(prefix) CONCAT(prefix, __COUNTER__)
#define CONCAT(a, b) INNER_CONCAT(a, b)
#define INNER_CONCAT(a, b) a ## bclass MyClass {public:void my_function() {int UNIQUE_NAME(my_var) = 42;// ...}
};

该宏定义了一个唯一的名称,用于在指定作用域中声明临时变量。这些变量的名称由给定的前缀和一个自增计数器组成,可以确保在同一作用域内不会重复使用相同的名称。

#define UNIQUE_NAME(prefix) CONCAT(prefix, __COUNTER__)
#define CONCAT(a, b) INNER_CONCAT(a, b)
#define INNER_CONCAT(a, b) a ## bclass MyClass {
public:void my_function() {int UNIQUE_NAME(my_var) = 42;int UNIQUE_NAME(my_var) = 43;std::cout << my_var0 << std::endl;std::cout << my_var1 << std::endl;// ...}
};int main() {MyClass myClass;myClass.my_function();return 0;
}

输出

42
43

7、类型萃取模板

template<typename T>
struct is_pointer {static const bool value = false;
};template<typename T>
struct is_pointer<T*> {static const bool value = true;
};

该模板使用模板特化来判断给定类型是否为指针类型。

下面结合上面的宏定义实现作用域限定来写个demo:

#define UNIQUE_NAME(prefix) CONCAT(prefix, __COUNTER__)
#define CONCAT(a, b) INNER_CONCAT(a, b)
#define INNER_CONCAT(a, b) a ## btemplate<typename T>
struct is_pointer {static const bool value = false;
};template<typename T>
struct is_pointer<T*> {static const bool value = true;
};int main() {is_pointer<int*> UNIQUE_NAME(isPointer);std::cout << isPointer0.value << std::endl;is_pointer<int> UNIQUE_NAME(isPointer);std::cout << isPointer1.value << std::endl;return 0;
}

输出为

1
0
http://www.hkea.cn/news/754197/

相关文章:

  • 电子印章手机在线制作软件四川seo整站优化费用
  • 个人风采网站制作外贸网站平台哪个好
  • 沈阳企业建站谷歌推广和seo
  • .la域名做的网站如何快速推广app
  • 广州优化网站建设怎么用手机制作网站
  • 做微网站的第三方学网络营销
  • 湖南做网站的公司有哪些搜索引擎是什么
  • flash网站管理系统seo优化排名易下拉用法
  • 永年网站建设友链互换平台推荐
  • 企业网站的设计公司网络广告营销的典型案例
  • 高校思政主题网站建设的意义关键词歌词任然
  • 哪里做网站比较快2345网址导航下载桌面
  • 广州建设委员会官方网站凡科建站下载
  • 全球做网站的公司排名百度一下你就知道官网
  • 小企业网站价格免费发链接的网站
  • 买了空间和域名 怎么做网站哪家公司网站做得好
  • 网站备案是否关闭衡阳网站建设公司
  • 遂昌建设局网站个人怎么做网站
  • 软件开发和网站建设网络营销的未来6个发展趋势
  • 做网站一年多少钱免费seo网站推广
  • 智通人才网东莞最新招聘信息官网seo是如何做优化的
  • 个人做跨境电商网站百度地图导航手机版免费下载
  • 阿里云注册网站之后怎么做网站百度联盟是什么
  • 动画制作视频河南网站排名优化
  • 网站关键词怎么做排名掌门一对一辅导官网
  • 现在什么网站做推广比较好网页设计需要学什么
  • 个人购物网站 怎么建网络营销包括
  • 有没有做鸭的网站工作室招聘广州网站优化工具
  • 深圳营销外深圳网络营销公司seo和sem的联系
  • 专业的网站制作公司哪家好竞价专员是做什么的