Вопросы по теме 'incomplete-type'

Почему я получаю неполный тип при использовании предварительного объявления вместо #include?
Здесь у меня есть state_machine.h: #ifndef STATE_MACHINE_H #define STATE_MACHINE_H // state machine classes //#include "state_t.h" class state_t; class state_machine { public: state_machine(); void change_state(state_t *newState);...
1063 просмотров

Могу ли я создать экземпляр std::reference_wrapper‹T›, где T — неполный тип?
Позволяет ли std::reference_wrapper<T> быть неполным T точно так же, как с T& можно иметь дело, не будучи полным T ? GCC 4.9 принимает следующее: #include <functional> struct woof; struct test { test(woof& w) :...
1383 просмотров

Неполный тип идиомы C ++ Pimpl с использованием std :: unique_ptr
Прошу прощения за большой объем кода, необходимый для демонстрации проблемы. У меня проблема с использованием идиомы pimpl с std :: unique_ptr. В частности, проблема возникает, когда один класс (который имеет реализацию с расширением) используется в...
1609 просмотров

Можно ли расширить typedef с принудительной ошибкой компилятора?
Я использовал метод, показанный ниже, чтобы заставить компилятор кричать мне тип переменной: template <class T> struct show_type; Использование его с желаемой переменной, поэтому компилятор выдает ошибку неполного типа структуры:...
416 просмотров
schedule 11.12.2022

c - Ошибка: неполный тип не разрешен, компилятор IAR
Посоветуйте, что не так? в .h struct { uint8_t time; uint8_t type; uint8_t phase; uint8_t status; } Raw_data_struct; typedef struct Raw_data_struct Getst_struct; void Getst_resp(Getst_struct Data); в .c...
26280 просмотров
schedule 08.09.2022

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

Ошибка компиляции для неполного векторного типа (C++17)
Сначала немного предыстории. Как сказано в стандарте С++ 17: [vector.overview]/3 Неполный тип T может использоваться при создании экземпляра вектора, если распределитель удовлетворяет требованиям полноты распределителя 17.6.3.5.1. T должен...
175 просмотров

При добавлении элемента *void в массив *void, как компилятор узнает, сколько байтов использовать в памяти?
Недавно я начал больше узнавать о структурах данных, а затем при реализации концепции очереди в C столкнулся со следующим: typedef struct { int max; /* Max. enqueed items. */ int total; /* Total enqueued. */ int pos_start; /*...
63 просмотров

Если тип структуры определен в другом файле .c, он становится неполным?
У меня не может быть проблем с этим кодом: #include <stdio.h> struct foo { void * data; }; int main() { printf("%ul\n", sizeof(struct foo)); } но как только структура будет объявлена ​​в другом файле и передана компилятору,...
154 просмотров
schedule 28.08.2023