微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为“setw”、“setprecision”、“left”、“right”、“fixed”和“scentific”使用更短的名称?

如何解决如何为“setw”、“setprecision”、“left”、“right”、“fixed”和“scentific”使用更短的名称?

我想在我的代码中使用这些 STL 函数,但是很多时候它们的存在使得代码的可读性变得很麻烦。有没有办法为这些命令定义“别名”?

解决方法

iomanipulators 是函数,对它们中的大多数来说,你可以很容易地得到一个函数指针(实际上我没有检查,但例如有几个重载或函数模板,会让它变得不那么容易):

#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; 是一个惊喜的来源:我必须寻找confusing 只是为了意识到它们只是可以直接使用的东西的别名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。