随笔分类 - c++
摘要:背景 std::format在传参数量少于格式串所需参数数量时,会抛出异常。而在大部分的应用场景下,参数数量不一致提供编译报错更加合适,可以促进我们更早发现问题并进行改正。 最终效果 // 测试输出接口。 template <typename... T> void Print(const std::
阅读全文
摘要:c++14 获取枚举名 前言 之前写过一篇c++11 获取枚举名,这里使用c14 进行重构。c14 放松了对 constexpr 函数的限制,因此可以将解析枚举名的步骤移至编译期进行,从而也避免了通过在头文件定义并初始化变量来获得代码执行权的“骚操作”。 相较c++11 版本,本篇介绍的实现方案主要
阅读全文
摘要:效果 ENUM_DEFINE ( Color, Red, Blue, ) EnumHelper(Color::Red) -> "Red" EnumHelper(Color::Red, std::toupper) -> "RED" 关键技术 __VA_ARGS__ __VA_ARGS__ 实现了可变参
阅读全文
摘要:简介 在项目中,存在许多不规范的代码,其一就是将无符号变量赋值给有符号变量。在大多数情况下是不会出现问题的,因为那些变量值往往小于 2147483648。 但是一些特定的接口,如时间获取接口,可能返回一个较大的无符号值,如果使用 int 变量接收,便可能出现异常。当这些接口在项目中大量使用时,排查起
阅读全文