![](/img/trans.png)
[英]SQLHANDLE-Parameters: function does not take x arguments (but it does, actually)
[英]How many parameters does ios::setstate actually take?
我对函数ios::setstate( iostate state )
看到的每个定义都表明该函数采用一个且只有一个参数,但是当我使用以下函数调用编译程序时,所有内容都可以编译并正常运行:
mystream.setstate( std::ios_base::badbit, true );
第二个参数到底是什么?为什么没有关于它的文档?
编辑:我正在使用最新版本的Microsoft Visual Studio 2010的命令行编译器。
它必须接受一个参数,如您所知,但是在实现中被允许通过使用默认值(§17.6.5.5)参数来扩展成员函数。 换句话说,只要可行:
mystream.setstate( std::ios_base::badbit );
您的编译器符合标准。 不过,没有什么可以说您的代码不必工作。
(您的库实现已决定拥有一个布尔参数会很有用。您永远不会注意到它,因为它具有默认值,但是您仍然可以进入实现特定的领域并自己提供参数。这是否是一个好方法。这个想法显然是另一个问题,但可能不是。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.