人気ブログランキング | 話題のタグを見る
C++のコンマの使い道(の指南にはなっていませんが)
以下の様なコードでも、エラーは出ません!
#include <iostream>

bool a()
{
  std::cout << "Hello World!\n";
  return true;
}

bool b()
{
  std::cout << "Good Bye!\n";
  return false;
}

bool c()
{
  std::cout << "Dead!\n";
  return false;
}


int main()
{
  0;  // 作用が無いため、コンパイラに無視される
  int x = (0, 1, c(), 3, 4, 5); // x = 5 と同義(ただし、それ以外の作用が無い値は無視されるが、c()は呼び出される)
  a(), b(), c();  // 左から順に処理される
  do
  {
    std::cout << x << std::endl;
  } while (a(), b(), c(), x--); // whileとしては x-- のみ評価されるが、それ以外の関数も左から順に評価される。

  do
  {
    std::cout << "The End!" << std::endl;
  } while (0,0);  // フクロウの顔をコードに描きたいときにはこう書く!(右の0のみ評価され、左の0は無意味)
                  // C6319 テストされた式内でのコンマ演算子を使用すると、作用が存在しないときに左辺の引数が無視される原因となります
                  // これは、左の0 に作用が無いため、コンパイラに無視され、コード化されない可能性がある事を示す
}

ソニーストア

by isoq | 2020-04-28 22:11 | C/C++/Win32
<< CMFCButton::Ena... 「windowsセットアップは... >>