| 310 | |
| 311 | |
| 312 | int main() |
| 313 | { |
| 314 | #if 0 |
| 315 | compare(1, 2); // 模板实参推演 |
| 316 | compare("aaa", "ddd"); // 编译器会直接调用非模板函数 |
| 317 | compare<const char *>("aaa", "ddd"); // 调用特例化 |
| 318 | #endif |
| 319 | /* 测试 Vector */ |
| 320 | Test a1, a2, a3; |
| 321 | cout << "--------------------\n"; |
| 322 | Vector<Test> vec; |
| 323 | vec.push_back(a1); |
| 324 | vec.push_back(a2); |
| 325 | vec.push_back(a3); |
| 326 | cout << "--------------------\n"; |
| 327 | vec.pop_back(); |
| 328 | cout << "--------------------\n\n"; |
| 329 | |
| 330 | /* 对比 push_back 和 emplace_back */ |
| 331 | Test t1(10); |
| 332 | Vector<Test> v(100); |
| 333 | |
| 334 | cout << "==========\n"; |
| 335 | v.push_back(t1); |
| 336 | v.emplace_back(t1); |
| 337 | |
| 338 | cout << "==========\n"; |
| 339 | v.push_back(Test(20)); |
| 340 | v.emplace_back(Test(20)); |
| 341 | |
| 342 | cout << "==========\n"; |
| 343 | v.emplace_back(20); |
| 344 | v.emplace_back(30, 40); |
| 345 | |
| 346 | return 0; |
| 347 | } |
nothing calls this directly
no test coverage detected