gpt4 book ai didi

c++ - 重载 setw( )?

转载 作者:行者123 更新时间:2023-11-28 00:24:30 25 4
gpt4 key购买 nike

我想要一个 setw 接受两个参数并返回最大的一个。这可能吗?我该怎么做呢?不寻找代码只是一些方向会很好,因为我无法在线找到明确的答案。

最佳答案

我不认为你可以重载它,但你当然可以用不同的名称定义你自己的类型,然后定义 <<>>运营商。例如:

struct setw_largest
{
int _value;
setw_largest(int value1, int value2) : _value(std::max(value1, value2)) {}
};

template<class _Elem, class _Traits, class _Arg>
inline basic_istream<_Elem, _Traits>& operator>>(basic_istream<_Elem, _Traits>& _Istr, const setw_largest& _Manip)
{
_Istr.width(_Manip._value);
return _Istr;
}

template<class _Elem, class _Traits, class _Arg>
inline basic_ostream<_Elem, _Traits>& operator<<(basic_ostream<_Elem, _Traits>& _Ostr, const setw_largest& _Manip)
{
_Ostr.width(_Manip._value);
return _Ostr;
}

std::cin >> setw_largest(1, 2) >> ...;
std::cout << setw_largest(1, 2) << ...;

关于c++ - 重载 setw( )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25732305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com