Вопросы по теме 'static-assert'
Способы ASSERT выражений во время сборки в C
Я убираю некоторый старый код, который повсюду использует `` магические числа '' для установки аппаратных регистров, и я хотел бы использовать константы вместо этих чисел, чтобы сделать код более выразительным (на самом деле они будут сопоставляться с...
19467 просмотров
schedule
23.11.2023
Как сделать static_assert с макросами?
Я попытался использовать это предложение для статического утверждения, но я не получаю ошибки компиляции, если использую его в метод шаблона.
Следующий пример:
#include <iostream>
#define STATIC_ASSERT(expr, msg) \
{...
7871 просмотров
schedule
17.11.2022
Что происходит, когда оператор [] терпит неудачу, и мне нужно подтверждение этого?
#include <iostream>
int main() {
int a[] = { 21, 213, 45 };
static_assert(a[22], "error for a\n");
return (0);
}
У меня есть таблица поиска в виде массива int , мне нужно проверить во время компиляции, может ли использование...
253 просмотров
schedule
21.03.2024
Могу ли я отключить статические утверждения?
У меня есть несколько довольно дорогостоящих вызовов static_assert , разбросанных по моему коду. Хотя они ценны, они часто излишни и значительно увеличивают время компиляции и использование памяти.
Могу ли я отключить их?
1635 просмотров
schedule
28.09.2022
использование static_assert в классе - как?
Я пытаюсь упростить проверку во время компиляции, сохраняет ли значение преобразование одного значения в новый тип. В STL может быть что-то, что может сделать это для меня, но я этого не вижу, поэтому написал. Это работает, но я хотел преобразовать...
135 просмотров
schedule
30.09.2022
Идиоматический способ вызвать ошибку компилятора в ветке constexpr
Я оказался с этим типом кода,
template<class T>
void f(T const& t){
if constexpr(std::is_same<T, double>{}) call_a(t); // call_a only compiles for double
else if constexpr(std::is_same<T, float >{}) call_b(t); //...
33 просмотров
schedule
03.12.2023
Я не знаю, почему этот код static_assert() не работает.
Это код:
#pragma once
#include <stdint.h>
namespace Detours
{
static_assert(sizeof(uintptr_t) == sizeof(void *));
}
Я получаю это сообщение об ошибке:
Error (active) E2783 expected a comma (the one-argument version of...
1156 просмотров
schedule
25.01.2024