static_assert と assert の使用とそれらの違いを理解しようとしていますが、これに関するソース/説明はほとんどありません
ここにいくつかのコードがあります
// ConsoleApplication3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "conio.h"
#include "cassert"
#include "iostream"
int main()
{
assert(2+2==4);
std::cout << "Execution continues past the first assert\n";
assert(2+2==5);
std::cout << "Execution continues past the second assert\n";
_getch();
}
冗長性に関するコメントをいただければ幸いです (「C++ の使い方」を学んでいるため)
コマンドで出力
Execution continues past the first assert
Assertion failed: 2+2==5, file c:\users\charles\documents\visual studio 2012\pro
jects\consoleapplication3\consoleapplication3\consoleapplication3.cpp, line 14
私はさまざまな方法とその使用法を見つけようとしていますが、私が理解している限りでは、それは実行時チェックであり、if ステートメントの別の「タイプ」です。
誰かが用途を明確にし、それぞれが何をしているのか、そしてそれらの違いを説明できますか?