cpp_static_assert - 8BitsCoding/RobotMentor GitHub Wiki

cpp_cpp11_static_assert

ASSERT?

#include <cassert>

const Student* Class::GetStudentInfo(const char* name)
{
    assert(name != NULL);
}
  • ์˜ค์ง ๋””๋ฒ„๊ทธ ๋นŒ๋“œ์‹œ์— ๋™์ž‘
  • ๋ฆด๋ฆฌ์ฆˆ์—์„œ๋Š” ์‚ฌ๋ผ์ง€๊ธฐ์— ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€๋Š” ์•Š๋Š”๋‹ค.

static_assert

  • ์ปดํŒŒ์ผ ์ค‘์— ์–ด์„œ์…˜ ํ‰๊ฐ€
  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ assert์กฐ๊ฑด์ด ์ฐธ์ธ์ง€ ์•„๋‹Œ์ง€ ์•ˆ๋‹ค.
  • ์‹คํŒจํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ๋ฑ‰๋Š”๋‹ค.
  • ๋งŽ์€ ๊ฒฝ์šฐ์— ์œ ์šฉ
  • C++11์˜ ์ตœ๊ณ ์˜ ๊ธฐ๋Šฅ์ด ์•„๋‹๊นŒ?
static_assert(sizeof(Student) == 74, "Error MSG");
// ๋ฐฐ์—ด์˜ ๊ธธ์ด ํ™•์ธ
static_assert(sizeof(mScores)/sizeof(mScores[0])==MAX_SCORES, "Error MSG");

์ •๋ฆฌ

  • ์ตœ๋Œ€ํ•œ assert๋ณด๋‹ค static_assert๋ฅผ ์‚ฌ์šฉ
  • assert๋Š” ์—ฌ์ „ํžˆ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ์•ผ ํ™•์ธ๊ฐ€๋Šฅ
  • ๋งˆ์น˜ ์ปดํŒŒ์ผ๋Ÿฌ ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ