![](/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.