Issue #77 Explicit template instantiations needed by Clang on Windows

This commit is contained in:
Mat Sutcliffe
2020-11-06 18:26:17 +00:00
parent 3c3b4cd2fe
commit 49611b7f44
9 changed files with 166 additions and 1 deletions

View File

@@ -32,5 +32,14 @@ namespace BlackMisc
qRegisterMetaTypeStreamOperators<CNotificationSounds::PlayMode>();
qRegisterMetaTypeStreamOperators<CNotificationSounds::NotificationFlag>();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Audio::CAudioDeviceInfoList>(int);
template void maybeRegisterMetaListConvert<CSequence<Audio::CAudioDeviceInfo>>(int);
} // ns
#endif
} // ns

View File

@@ -53,5 +53,32 @@ namespace BlackMisc
CTrack::registerMetadata();
CTransponder::registerMetadata();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Aviation::CAircraftEngineList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAircraftIcaoCodeList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAircraftCategoryList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAircraftPartsList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAircraftSituationList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAirlineIcaoCodeList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAirportList>(int);
template void maybeRegisterMetaListConvert<Aviation::CAtcStationList>(int);
template void maybeRegisterMetaListConvert<Aviation::CFlightPlanList>(int);
template void maybeRegisterMetaListConvert<Aviation::CLiveryList>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAircraftEngine>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAircraftIcaoCode>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAircraftCategory>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAircraftParts>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAircraftSituation>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAirlineIcaoCode>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAirport>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CAtcStation>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CFlightPlan>>(int);
template void maybeRegisterMetaListConvert<CSequence<Aviation::CLivery>>(int);
} // ns
#endif
} // ns

View File

@@ -25,5 +25,18 @@ namespace BlackMisc
CDistributionList::registerMetadata();
CUpdateInfo::registerMetadata();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Db::CDbInfoList>(int);
template void maybeRegisterMetaListConvert<Db::CArtifactList>(int);
template void maybeRegisterMetaListConvert<Db::CDistributionList>(int);
template void maybeRegisterMetaListConvert<CSequence<Db::CDbInfo>>(int);
template void maybeRegisterMetaListConvert<CSequence<Db::CArtifact>>(int);
template void maybeRegisterMetaListConvert<CSequence<Db::CDistribution>>(int);
} // ns
#endif
} // ns

View File

@@ -22,5 +22,14 @@ namespace BlackMisc
CLongitude::registerMetadata();
CElevationPlane::registerMetadata();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Geo::CCoordinateGeodeticList>(int);
template void maybeRegisterMetaListConvert<CSequence<Geo::CCoordinateGeodetic>>(int);
} // ns
#endif
} // ns

View File

@@ -28,5 +28,18 @@ namespace BlackMisc
qDBusRegisterMetaType<KeyCode>();
qRegisterMetaTypeStreamOperators<KeyCode>();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Input::CActionHotkeyList>(int);
template void maybeRegisterMetaListConvert<Input::CJoystickButtonList>(int);
template void maybeRegisterMetaListConvert<Input::CKeyboardKeyList>(int);
template void maybeRegisterMetaListConvert<CSequence<Input::CActionHotkey>>(int);
template void maybeRegisterMetaListConvert<CSequence<Input::CJoystickButton>>(int);
template void maybeRegisterMetaListConvert<CSequence<Input::CKeyboardKey>>(int);
} // ns
#endif
} // ns

View File

@@ -49,7 +49,34 @@ namespace BlackMisc
CUserList::registerMetadata();
CVoiceCapabilities::registerMetadata();
Settings::CNetworkSettings::registerMetadata();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Network::CClientList>(int);
template void maybeRegisterMetaListConvert<Network::CEcosystemList>(int);
template void maybeRegisterMetaListConvert<Network::CRawFsdMessageList>(int);
template void maybeRegisterMetaListConvert<Network::CRemoteFileList>(int);
template void maybeRegisterMetaListConvert<Network::CRoleList>(int);
template void maybeRegisterMetaListConvert<Network::CServerList>(int);
template void maybeRegisterMetaListConvert<Network::CTextMessageList>(int);
template void maybeRegisterMetaListConvert<Network::CUrlList>(int);
template void maybeRegisterMetaListConvert<Network::CFailoverUrlList>(int);
template void maybeRegisterMetaListConvert<Network::CUrlLogList>(int);
template void maybeRegisterMetaListConvert<Network::CUserList>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CClient>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CEcosystem>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CRawFsdMessage>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CRemoteFile>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CRole>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CServer>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CTextMessage>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CUrl>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CUrlLog>>(int);
template void maybeRegisterMetaListConvert<CSequence<Network::CUser>>(int);
} // ns
#endif
} // ns

View File

@@ -107,4 +107,27 @@ namespace BlackMisc
qDBusRegisterMetaType<CSequence<double>>();
qRegisterMetaTypeStreamOperators<CSequence<double>>();
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<CApplicationInfoList>(int);
template void maybeRegisterMetaListConvert<CCountryList>(int);
template void maybeRegisterMetaListConvert<CIconList>(int);
template void maybeRegisterMetaListConvert<CIdentifierList>(int);
template void maybeRegisterMetaListConvert<CLogCategoryList>(int);
template void maybeRegisterMetaListConvert<CNameVariantPairList>(int);
template void maybeRegisterMetaListConvert<CPropertyIndexList>(int);
template void maybeRegisterMetaListConvert<CStatusMessageList>(int);
template void maybeRegisterMetaListConvert<CSequence<CApplicationInfo>>(int);
template void maybeRegisterMetaListConvert<CSequence<CCountry>>(int);
template void maybeRegisterMetaListConvert<CSequence<CIcon>>(int);
template void maybeRegisterMetaListConvert<CSequence<CIdentifier>>(int);
template void maybeRegisterMetaListConvert<CSequence<CLogCategory>>(int);
template void maybeRegisterMetaListConvert<CSequence<CNameVariantPair>>(int);
template void maybeRegisterMetaListConvert<CSequence<CPropertyIndex>>(int);
template void maybeRegisterMetaListConvert<CSequence<CStatusMessage>>(int);
}
#endif
} // ns

View File

@@ -83,5 +83,28 @@ namespace BlackMisc
qRegisterMetaTypeStreamOperators<ReverseLookupLoggingFlag>();
qRegisterMetaTypeStreamOperators<ReverseLookupLogging>();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Simulation::FsCommon::CAircraftCfgEntriesList>(int);
template void maybeRegisterMetaListConvert<Simulation::CAircraftModelList>(int);
template void maybeRegisterMetaListConvert<Simulation::CDistributorList>(int);
template void maybeRegisterMetaListConvert<Simulation::CInterpolationSetupList>(int);
template void maybeRegisterMetaListConvert<Simulation::CMatchingStatistics>(int);
template void maybeRegisterMetaListConvert<Simulation::CSimulatedAircraftList>(int);
template void maybeRegisterMetaListConvert<Simulation::CSimulatorInfoList>(int);
template void maybeRegisterMetaListConvert<Simulation::CSimulatorPluginInfoList>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::FsCommon::CAircraftCfgEntries>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CAircraftModel>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CDistributor>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CInterpolationAndRenderingSetupPerCallsign>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CMatchingStatisticsEntry>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CSimulatedAircraft>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CSimulatorInfo>>(int);
template void maybeRegisterMetaListConvert<CSequence<Simulation::CSimulatorPluginInfo>>(int);
} // ns
#endif
} // ns

View File

@@ -35,5 +35,26 @@ namespace BlackMisc
CWindLayer::registerMetadata();
CWindLayerList::registerMetadata();
}
}
#if defined(Q_OS_WIN) && defined(Q_CC_CLANG)
namespace Private
{
template void maybeRegisterMetaListConvert<Weather::CCloudLayerList>(int);
template void maybeRegisterMetaListConvert<Weather::CMetarList>(int);
template void maybeRegisterMetaListConvert<Weather::CPresentWeatherList>(int);
template void maybeRegisterMetaListConvert<Weather::CTemperatureLayerList>(int);
template void maybeRegisterMetaListConvert<Weather::CVisibilityLayerList>(int);
template void maybeRegisterMetaListConvert<Weather::CWeatherDataPluginInfoList>(int);
template void maybeRegisterMetaListConvert<Weather::CWindLayerList>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CCloudLayer>>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CMetar>>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CPresentWeather>>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CTemperatureLayer>>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CVisibilityLayer>>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CWeatherDataPluginInfo>>(int);
template void maybeRegisterMetaListConvert<CSequence<Weather::CWindLayer>>(int);
} // ns
#endif
} // ns