作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个类似于下面的函数,它是 const 并且需要在继续之前检查文件流是否打开:
bool MyClass::checkSomeStuff() const
{
// Where outputFile_ is a std::ofstream
if ( ! outputFile_.is_open() )
{
throw std::runtime_error( "Output file not open." );
}
// ... do more stuff
但是,我似乎不能这样做,因为 is_open()
被声明为:
bool is_open ( );
(即非常量)
对我来说,像这样的函数(显然是纯访问器)应该是非常量的,这似乎有点奇怪。这背后有什么合理的逻辑吗?
最佳答案
实际上是 C++11 中的 const
。 C++03版本是个不幸的错误。
关于c++ - 为什么 `is_open()` 是非常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11466630/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我已更改 my.cnf。并检查sql_mode使用下面的命令 select @@global.sql_mode; 它说, 我也尝试过 set global sql_mode=''; SET sql_m
首先,我有一个结构,它有一个值和一个默认值 struct S { int a = 1; }; 当 gcc 和 clang 都是 non-const/non-constexpr 时,可以默认构造
我是一名优秀的程序员,十分优秀!