我有以下示例代码块:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main(){
string blank = " ";
cout << "Hello" << blank << "47";
}
我的原始代码中有很多这种类型的提示。
我希望能够将空白字符串更改为setw(2)函数,而不必在代码中包含的每一个cout上将空白替换为setw(2)。
那么有没有办法将cpp函数设置为变量?
这样我可以通过键入名称来调用该函数?
例如:
func blank = setw(2);
cout<< "Hello" << blank << "47";
最佳答案
std::setw(x)
的类型是unspecified,但是您不需要知道它。
您可以只使用auto
:
auto blank = std::setw(2);
正如@StoryTeller指出的那样,尽管这应该在合理的实现中起作用,但并不能保证这样做。
一个更安全的选择是使用
<<
重载来创建一个类:struct blank_t {} blank;
std::ostream &operator<<(std::ostream &s, blank_t)
{
return s << std::setw(2);
}
关于c++ - 将setw()放置为变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47250607/