如何解决这些编译器警告?

时间:2018-01-08 08:42:12

标签: c++ for-loop compiler-warnings ternary-operator

以下代码:

CREATE TABLE `Collaboration_Collaborator` (
    `Collaboration_id` int(11) NOT NULL,
    `collaborators_id` int(11) NOT NULL,
    PRIMARY KEY `UK_obmdv02oey7264a085m7baqbo` (`collaborators_id`, `Collaboration_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

我从g ++收到以下警告:

  

警告:循环条件中使用的变量'count'和'numNodes'不是   在循环体[-Wfor-loop-analysis]中修改(; count< numNodes;   ++ iter,++ count){

很明显,count被修改为循环增量的一部分,而numNodes是循环测试条件中使用的常量。

在其他地方,对于std :: cout的以下print语句:

auto count = 0;
auto iter = container.begin()

for(; count < numNodes; ++iter, ++count){//do something}

其中调用pN-&gt; isRoot()返回一个布尔值,我试图将这个事实组合成一个合适的三元运算符,我从g ++得到以下警告:

  

警告:表达式结果未使用[-Wunused-value] cout&lt;&lt; “是根吗?”   &LT;&LT; pN-&gt; isRoot()? “是”:“否”;

任何克服这些警告的建议都将受到赞赏。

TIA

维诺德

跟进,将模板函数定义的代码发布为MWE:

cout << "Is Root?" << pN->isRoot() ? "Yes" : "No" ;

0 个答案:

没有答案