Fix build errors related to template instantiations on Windows
The MS compiler doesn't seem to recognize our templates here: g:\jenkins\workspace\simgear-win\source\simgear\embedded_resources\EmbeddedResourceManager.hxx(169): error C3190: 'std::shared_ptr<const simgear::AbstractEmbeddedResource> simgear::EmbeddedResourceManager::getResource(const std::string &,const std::string &) const' with the provided template arguments is not the explicit instantiation of any member function of 'simgear::EmbeddedResourceManager' (compiling source file G:\Jenkins\workspace\SimGear-Win\source\simgear\embedded_resources\EmbeddedResourceManager.cxx) [G:\Jenkins\workspace\SimGear-Win\build32\simgear\SimGearCore.vcxproj] g:\jenkins\workspace\simgear-win\source\simgear\embedded_resources\EmbeddedResourceManager.hxx(169): error C2945: explicit instantiation does not refer to a template-class specialization (compiling source file G:\Jenkins\workspace\SimGear-Win\source\simgear\embedded_resources\EmbeddedResourceManager.cxx) [G:\Jenkins\workspace\SimGear-Win\build32\simgear\SimGearCore.vcxproj] -> try without the explicit instantiations on Windows.
This commit is contained in:
@@ -163,6 +163,11 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Explicit template instantiations
|
// Explicit template instantiations
|
||||||
|
//
|
||||||
|
// MSVC doesn't recognize these as template instantiations of what we defined
|
||||||
|
// above (this seems to be with “Visual Studio 14 2015”), therefore I'm not
|
||||||
|
// including them on Windows.
|
||||||
|
#ifndef _WIN32
|
||||||
template
|
template
|
||||||
std::shared_ptr<const AbstractEmbeddedResource>
|
std::shared_ptr<const AbstractEmbeddedResource>
|
||||||
EmbeddedResourceManager::getResource(const std::string& virtualPath,
|
EmbeddedResourceManager::getResource(const std::string& virtualPath,
|
||||||
@@ -194,6 +199,7 @@ EmbeddedResourceManager::getIStream(const std::string& virtualPath,
|
|||||||
template
|
template
|
||||||
std::unique_ptr<std::istream>
|
std::unique_ptr<std::istream>
|
||||||
EmbeddedResourceManager::getIStream(const std::string& virtualPath) const;
|
EmbeddedResourceManager::getIStream(const std::string& virtualPath) const;
|
||||||
|
#endif // ifndef _WIN32
|
||||||
|
|
||||||
} // of namespace simgear
|
} // of namespace simgear
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user