Почему бы просто не написать:
template <unsigned N, unsigned LO = 0U, unsigned HI = 99U>
struct validate : std::bool_constant< N>=LO && N<=HI >
{ /* static_assert(LO <= HI); */ };
Обратите внимание, что любое значение типа unsigned
будет больше или равно 0.
Или установите блоки в GAC на каждой машине или имейте специальную папку LIB под Вашим корнем решения, который содержит все Ваши сторонние блоки. Папка LIB - то, что я использовал в течение последних нескольких лет сам. Я даже поместил блоки в управление исходным кодом, таким образом, другие/новые разработчики получают их, не имея необходимость думать об этом.
Добавление сторонних блоков к каталогу lib также имеет большое значение для обеспечения, что все в команде используют точно ту же версию, а не какова была последняя версия, когда они создали свою dev машину. Слишком легко выйти из синхронизации, если Вам не зарегистрировались в них общее местоположение в управлении исходным кодом.
Это - больше последующего вопроса, чем ответ, но я думал, что эта группа могла бы знать.
Что мы делаем, если у нас есть некоторый devs, работающий над машинами на 64 бита и некоторые на машинах на 32 бита, но мы должны сослаться на неуправляемые блоки, которые должны быть в x86 для половины команды и x64 для другой половины? Существует ли решение помимо ручного обновления ссылок каждый раз, когда кто-то на буровой установке на 64 бита становится последним?