[C++] assert

6822 ワード

assert

assert関数を使用してエラーが発生する可能性のある場所に挿入すると、実行時に開発者に通知されます.
#include <iostream>
#include <cassert>

using namespace std;

int main(void)
{
	assert(false);

	return 0;
}
assertを使うと、どこが間違っているのか分かりやすいです.assertは発行モードで動作しない.

assertの例

#include <iostream>
#include <cassert> // assert.h
#include <array>

using namespace std;

void printValue(const std::array<int, 5> &my_array, const int &ix)
{
    assert(ix >= 0); // 인덱스가 0보다 작으면 assert 에러
    assert(ix <= my_array.size() - 1); // 인덱스가 size - 1보다 작으면 assert 에러
    std::cout << my_array[ix] << std::endl;
}

int main()
{
    std::array<int, 5> my_array{1, 2, 3, 4, 5};

    printValue(my_array, 100);

    return 0;
}
関数にassertを加えることで、エラー入力時に警告情報を出力し、エラーが発生した場所を簡単に知ることができます.assertは、実行時に実行されます.

static_assert

static_assertコンパイル中にエラーが発生しました.
#include <iostream>
#include <cassert> // assert.h
#include <array>

using namespace std;

int main()
{
    const int x = 10;

    static_assert(x == 5, "x should be 5");

    return 0;
}
static_assertに文字を残すこともできます.