【发布时间】:2017-01-21 23:06:44
【问题描述】:
我们正在使用的外部库包含以下显式构造函数:
class Chart {
public:
explicit Chart(Chart::Type type, Object *parent);
// ...
};
编译器抱怨以下警告:
chart.h: warning #2305: declaration of 'explicit' constructor
without a single argument is redundant
只删除chart.h 中的explicit 关键字而不重新编译库以避免警告是否是二进制兼容的?我的感觉是它是安全的,因为explicit 在这种情况下无论如何都没有意义。谁能确认一下?
【问题讨论】:
-
关闭愚蠢的警告。
-
我想这是最好的建议 :-)
-
警告在 C++11 之前非常有意义。如果你的编译器是 c++11 之前的,你可能会遇到 c++11 代码更严重的问题,所以你可能应该考虑升级。
标签: c++ c++03 explicit-constructor