Я огляделся и не могу точно сказать, отвечают ли другие подобные вопросы на это или нет.
// lib.h
namespace lib_namespace
{
struct lib_struct
{
typedef std::vector<LibObject> struct_value;
};
typedef lib_struct::struct_value lib_value; // compiler points here
};
// my.h
// attempt at forward declaration
namespace lib_namespace { class lib_value; };
...
// my.cpp
#include "lib.h"
Я получаю ошибку компилятора переопределения, которая понятна, но есть ли способвперед объявить что typedef?
Мое намерение состоит в том, чтобы избежать добавления lib.h как зависимости вне библиотеки, которую я создаю.Возможно, есть лучший способ добиться этого?
Редактировать: Чтобы уточнить, я стараюсь избегать добавления строки дополнительных каталогов для всех файлов проекта, которые будут использовать библиотеку, которую я создаю из-за третьейЯ использую библиотеку для вечеринок, и в описанной выше ситуации я застрял.Так что все в порядке, если я включу lib.h
в my.cpp
, но не my.h
.