Is this a baby version of dependent types?
Pedantically you are correct: checking contracts is expected to be too expensive to actually do as part of a build. C++ expects that static analysis will check contracts as well (static analysis is might take 10 hours to check what compiles in 10 minutes)
template<int N>
class T;
constexpr int N = f();
T<N> var;