我想在代码中使用这些STL函数,但很多时候它们的存在会使代码的可读性变得繁琐。有什么方法可以定义";别名";这些命令?
iomanipulator是函数,对其中大多数来说,你可以很容易地获得函数指针(实际上我没有检查,但例如,有几个重载或函数模板会让它变得不那么容易(:
#include <iostream>
#include <iomanip>
int main(){
auto confu = std::setw;
auto sing = std::setprecision;
std::cout << confu(42) << sing(3) << 42;
}
我不得不说,你的动机相当可疑。C++程序员确实从标准库中了解一些东西。他们不知道你的别名。因此,对于除了你之外的任何人来说,可读性都会降低而不是提高。如果你有复杂的格式,你可以将打印包装在一个函数中:
my_fancy_print(42);
C++代码的读者已经习惯了函数,他们知道在哪里可以找到它们的实现,my_fancy_print(42)
并不令人困惑,而std::cout << confu(42) << sing(3) << 42;
则令人惊讶:我必须寻找confu
和sing
的定义,才能意识到它们只是本可以直接使用的东西的别名。