邪修 C++ ,10 段“千万别上生产”的黑魔法代码
——仅供技术猎奇,切勿真用!
⚠️ 每条都踩 UB/UBSAN/ODR 红线,可读性 0,维护成本 ∞
面试可炫技,项目里敢用就等死!
1️⃣ 一行 main
也没有的程序
struct A { A(){ puts("邪修C++"); exit(0); } } a;
全局对象构造期直接
exit
,跳过整个 CRT。
2️⃣ 模板元编程“阶乘”在编译期爆炸
template<int N> struct Fac{ enum{ value = N * Fac<N-1>::value }; };
template<> struct Fac<0>{ enum{ value = 1 }; };
constexpr auto x = Fac<20>::value; // 编译期递归 20 层
图灵完备模板,CPU 0 负载,编译器 100% 负载。
3️⃣ SFINAE 黑魔法:真假分支同时存在
template<bool> struct tag{};
template<class T> auto f(T t, tag<true>) -> int { return t + 1; }
template<class T> auto f(T t, tag<false>) -> int { return t - 1; }
#define f(x) f(x, tag<(x > 0)>{})
宏 + 模板 + 重载,IDE 当场罢工。
4️⃣ 指针 + 位域 + 联合体重叠
union {
struct { unsigned long long a:1, b:63; };
unsigned long long v;
} u{ .v = 0x8000000000000000ULL };
std::cout << u.a; // 1 或 0?平台决定
UB 大杂烩,UBSAN 直接红屏。
5️⃣ 运行时生成机器码
#include <sys/mman.h>
unsigned char code[] = {0xB8,0x2A,0x00,0x00,0x00,0xC3}; // mov eax,42; ret
void* buf = mmap(nullptr, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
memcpy(buf, code, sizeof(code));
int (*p)() = (int(*)())buf;
std::cout << p(); // 42
运行时 JIT,杀毒软件报警。
6️⃣ 双重括号初始化 + 匿名派生
std::vector<int> v = std::vector<int>({{1, 2, 3}}){};
每次创建匿名派生类,RTTI 爆炸。
7️⃣ CRTP 静态多态“元宇宙”
template<class Derived>
struct Base { void foo(){ static_cast<Derived*>(this)->impl(); } };
struct D: Base<D>{ void impl(){ puts("CRTP"); } };
不依赖虚函数,却实现多态,模板实例化膨胀。
8️⃣ 宏黑魔法:逗号运算符一行流
#define evil(x) (printf("A\n"), printf("B\n"), x)
int val = evil(42);
宏里玩副作用,调试器断点失效。
9️⃣ 三目运算符 + 逗号运算符链式地狱
int x = 1, y = 2;
int res = (x > y) ? (puts("x>y"), x) : (puts("x<=y"), y);
把
puts
塞进表达式,阅读体验当场去世。
🔟 异常 + noexcept 套娃
void boom() noexcept { throw 42; } // UB:noexcept 里抛异常
标准直接 UB,程序可能
std::terminate
。
邪修口诀
“模板撑爆编译器,指针踏穿内存墙;
UB 当特性,UBSAN 当背景音。”
PS
想要正经学习 C++ 请从编程狮的《C++ 入门课程》开始!