refs #802 Fixed linker errors for exported explicit template instantiations with Clang on Windows.

This commit is contained in:
Mathew Sutcliffe
2016-11-13 22:23:31 +00:00
committed by Klaus Basan
parent 3c40c1026e
commit 3ab121a593
17 changed files with 127 additions and 101 deletions

View File

@@ -208,10 +208,12 @@ namespace BlackMisc
// see here for the reason of thess forward instantiations
// http://www.parashift.com/c++-faq/separate-template-class-defn-from-decl.html
template class ICallsignObjectList<BlackMisc::Aviation::CAtcStation, BlackMisc::Aviation::CAtcStationList>;
template class ICallsignObjectList<BlackMisc::Aviation::CAircraftSituation, BlackMisc::Aviation::CAircraftSituationList>;
template class ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>;
template class ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>;
//! \cond PRIVATE
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAtcStation, BlackMisc::Aviation::CAtcStationList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAircraftSituation, BlackMisc::Aviation::CAircraftSituationList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>;
//! \endcond
} // namespace
} // namespace

View File

@@ -107,11 +107,11 @@ namespace BlackMisc
};
//! \cond PRIVATE
extern template class BLACKMISC_EXPORT_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAtcStation, BlackMisc::Aviation::CAtcStationList>;
extern template class BLACKMISC_EXPORT_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAircraft, BlackMisc::Aviation::CAircraftList>;
extern template class BLACKMISC_EXPORT_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAircraftSituation, BlackMisc::Aviation::CAircraftSituationList>;
extern template class BLACKMISC_EXPORT_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>;
extern template class BLACKMISC_EXPORT_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAtcStation, BlackMisc::Aviation::CAtcStationList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAircraft, BlackMisc::Aviation::CAircraftList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Aviation::CAircraftSituation, BlackMisc::Aviation::CAircraftSituationList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>;
//! \endcond
} //namespace

View File

@@ -279,9 +279,11 @@ namespace BlackMisc
// see here for the reason of thess forward instantiations
// http://www.parashift.com/c++-faq/separate-template-class-defn-from-decl.html
template class CModulator<CComSystem>;
template class CModulator<CNavSystem>;
template class CModulator<CAdfSystem>;
//! \cond PRIVATE
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE CModulator<CComSystem>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE CModulator<CNavSystem>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE CModulator<CAdfSystem>;
//! \endcond
} // namespace
} // namespace

View File

@@ -163,9 +163,9 @@ namespace BlackMisc
class CNavSystem;
class CAdfSystem;
extern template class BLACKMISC_EXPORT_TEMPLATE CModulator<CComSystem>;
extern template class BLACKMISC_EXPORT_TEMPLATE CModulator<CNavSystem>;
extern template class BLACKMISC_EXPORT_TEMPLATE CModulator<CAdfSystem>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE CModulator<CComSystem>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE CModulator<CNavSystem>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE CModulator<CAdfSystem>;
//! \endcond
} // namespace