⚠️ 用几种类型,就有几份计数
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)三种类型,各调几次:
#include <iostream>
#include <string>
/* 用了几种类型,就生成几份 —— 这就是「代码膨胀」的来源 */
template <typename T>
int mark() { static int n = 0; return ++n; }
int main() {
/* 三种类型各调两次:每一份各自从 1 数到 2 */
int a1 = mark<int>(), a2 = mark<int>();
int b1 = mark<double>(), b2 = mark<double>();
int c1 = mark<std::string>();
(void)a1; (void)b1;
std::cout << a2 << "/" << b2 << "/" << c1 << "\n";
return 0;
}
全部评论