C++.Coding.Standards.1918.Rules.Guidelines [Electronic resources]

Herb Sutter, Andrei Alexandrescu

نسخه متنی -صفحه : 521/ 354
نمايش فراداده

Examples

Example: Do

assert

on basic assumptions. We all have war stories about assertions that "couldn't possibly fire," but did. Time and again, it's: "This value is certainly positive!" "That pointer is obviously not null!" Do recheck tautologies: Software development is complex, change is the norm, and anything can happen in a program that is changing. Assertions verify that what you believe is "obviously true" today actually stays true. Do

assert on tautologies that the type system cannot enforce:

string Date::DayOfWeek() const {

assert( day_ > 0 && day_ <= 31 );

// invariant checks

assert( month_ > 0 && month_ <= 12 );

// … }