compile-time

template<unsigned int n> struct Factorial { enum { value = n * Factorial<n-1>::value}; }; template<> struct Factorial<0> { enum {value = 1}; }; int main() { std::cout << Factorial<5>::value; std::cout << Factorial<10>::value; } Вышеуказанная ...

Я хочу проверить, является ли данный символ цифрой во время компиляции. В частности, мне нужна реализация следующего прототипа функции: template<char c> constexpr bool IsDigit(); Для уточнения: я не должен использовать пользовательскую реализацию. Если уже есть встроенный способ в std, я бы предпоче...

У меня есть таблица символов, реализованная как std::map. Для значения нет никакого способа законно построить экземпляр типа значения с помощью конструктора по умолчанию. Однако если я не предоставляю конструктор по умолчанию, я получаю ошибку компилятора, и если я делаю конструктор assert, моя программа комп...

Я пытаюсь обернуть функции API Windows для проверки ошибок, когда я так выбираю. Как я выяснил в предыдущем вопросе SO, я мог бы использовать шаблонную функцию для вызова функции API, а затем вызвать GetLastError() для извлечения любой ошибки, которую она могла бы установить. Затем я мог бы передать эту ошибк...

Предположим, что у нас есть шаблонная функция с параметром не-типа const char *, как это: template <const char * MESSAGE> void print() { std::cout << MESSAGE << 'n'; } Использование этого шаблона не будет проблемой, так как журнал MESSAGE может быть выведен во время компиляции, поэто...

Предположим, что у меня есть тип data F a = A a | B Я реализую функцию f :: F a -> F a -> F a следующим образом: f (A x) B = A x f B (A _) = B f (A _) (A x) = A x Однако нет такой вещи, как f B B это логически невозможно, поэтому я хочу: f B B = GENERATE_HASKELL_COMPILE_ERROR Что, конечно, н...

Я пытаюсь создать функцию, которая принимала бы несколько аргументов данного типа, но и тип, и количество аргументов должны быть указаны с помощью шаблонов. Я обнаружил, что использование C++11 initializer_list , вероятно, хороший метод в этом случае, но можно ли проверить его размер во время компиляции? Сущ...

Я понимаю разницу между временем выполнения и временем компиляции и как их различать, но я просто не вижу необходимости проводить различие между временем компиляции и временем выполнения зависимостей. Я задыхаюсь вот от чего: как может программа не зависеть от чего-то во время выполнения, от чего она зависел...

может ли кто-нибудь дать мне хорошее понимание того, в чем разница между временем выполнения и временем компиляции? ...