Can't use forward declare with std::vector

Not allowed per C++ standard

See https://github.com/llvm/llvm-project/issues/57700
This commit is contained in:
Marek Roszko 2024-04-13 08:06:15 -04:00
parent 89dd8e1166
commit 0ce227fa92
4 changed files with 46 additions and 44 deletions

View File

@ -26,8 +26,7 @@
#include <git2.h>
#include <vector>
class wxString;
#include <wx/string.h>
class GIT_REVERT_HANDLER
{

View File

@ -173,23 +173,6 @@ struct CADSTAR_PART_ENTRY
};
struct CADSTAR_PART_SYMBOL_ENTRY
{
CADSTAR_PART_SYMBOL_ENTRY() {};
CADSTAR_PART_SYMBOL_ENTRY( std::string aName, std::optional<std::string> aAlternate,
std::vector<CADSTAR_PART_PIN> aPins ) :
m_SymbolName( aName ),
m_SymbolAlternateName( aAlternate ),
m_Pins( aPins )
{};
std::string m_SymbolName;
std::optional<std::string> m_SymbolAlternateName;
std::vector<CADSTAR_PART_PIN> m_Pins;
};
struct CADSTAR_PART_PIN
{
CADSTAR_PART_PIN() :
@ -214,6 +197,23 @@ struct CADSTAR_PART_PIN
};
struct CADSTAR_PART_SYMBOL_ENTRY
{
CADSTAR_PART_SYMBOL_ENTRY() {};
CADSTAR_PART_SYMBOL_ENTRY( std::string aName, std::optional<std::string> aAlternate,
std::vector<CADSTAR_PART_PIN> aPins ) :
m_SymbolName( aName ),
m_SymbolAlternateName( aAlternate ),
m_Pins( aPins )
{};
std::string m_SymbolName;
std::optional<std::string> m_SymbolAlternateName;
std::vector<CADSTAR_PART_PIN> m_Pins;
};
struct CADSTAR_ATTRIBUTE_VALUE
{
bool m_ReadOnly = false;

View File

@ -211,31 +211,6 @@ public:
bool Init( IbisParser& aParser );
};
class KIBIS : public KIBIS_ANY
{
public:
KIBIS() : KIBIS_ANY( this ), m_file( this )
{
m_valid = false;
}; // Constructor for unitialized KIBIS members
KIBIS( std::string aFileName, REPORTER* aReporter = nullptr );
REPORTER* m_reporter;
std::vector<KIBIS_COMPONENT> m_components;
std::vector<KIBIS_MODEL> m_models;
KIBIS_FILE m_file;
/** @brief Absolute path of the directory that will be used for caching. */
std::string m_cacheDir = "";
/** @brief Return the model with name aName . Nullptr if not found */
KIBIS_MODEL* GetModel( std::string aName );
/** @brief Return the component with name aName . Nullptr if not found */
KIBIS_COMPONENT* GetComponent( std::string aName );
};
class KIBIS_MODEL : public KIBIS_ANY
{
public:
@ -454,4 +429,28 @@ public:
KIBIS_PIN* GetPin( std::string aPinNumber );
};
class KIBIS : public KIBIS_ANY
{
public:
KIBIS() : KIBIS_ANY( this ), m_file( this )
{
m_valid = false;
}; // Constructor for unitialized KIBIS members
KIBIS( std::string aFileName, REPORTER* aReporter = nullptr );
REPORTER* m_reporter;
std::vector<KIBIS_COMPONENT> m_components;
std::vector<KIBIS_MODEL> m_models;
KIBIS_FILE m_file;
/** @brief Absolute path of the directory that will be used for caching. */
std::string m_cacheDir = "";
/** @brief Return the model with name aName . Nullptr if not found */
KIBIS_MODEL* GetModel( std::string aName );
/** @brief Return the component with name aName . Nullptr if not found */
KIBIS_COMPONENT* GetComponent( std::string aName );
};
#endif

View File

@ -712,7 +712,11 @@ bool PROJECT_TREE_PANE::hasChangedFiles()
if( !repo )
return false;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmissing-field-initializers"
git_status_options opts = GIT_STATUS_OPTIONS_INIT;
#pragma clang diagnostic pop
opts.show = GIT_STATUS_SHOW_INDEX_AND_WORKDIR;
opts.flags = GIT_STATUS_OPT_INCLUDE_UNTRACKED | GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX
| GIT_STATUS_OPT_SORT_CASE_SENSITIVELY;