В следующем коде у меня есть многочисленные тесты в функции test_all .
Когда тест не сработает, я получаю эту ошибку компилятора: вызов для постоянной функции ‘test_all ()’ не является постоянным выражением
Вы можете помочь мне найти способ печати, какой конкретный тест не удался?#include
struct Buffer {
int size;
int* data;
constexpr Buffer(int n) : size(n), data(new int[n])
{
for (int i = 0; i < n; ++i) data = i;
}
constexpr ~Buffer() { delete[] data; }
constexpr int get(int i) const { return data; }
};
consteval void test_all() {
Buffer b1(5);
assert(b1.get(3) == 3);
if (b1.get(3) != 30) throw 3; // Test should fail
Buffer b2(10);
assert(b1.get(3) == -1234); // Test should fail
// ...
}
int main() {
test_all();
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-function