From 7d06d798af8262aaf3ff54229eeef65b9b68cc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Tue, 29 Nov 2022 18:38:33 +0000 Subject: [PATCH] [BlenderDNA.h] Declare explicit specializations It is an ODR violation to use a template specialization for which an explicit specialization is defined somewhere whose declaration is not visible at the point of use. Found via clang's -Wundefined-func-template warning. --- code/AssetLib/Blender/BlenderDNA.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/AssetLib/Blender/BlenderDNA.h b/code/AssetLib/Blender/BlenderDNA.h index dc5a36c2a..dcae3198b 100644 --- a/code/AssetLib/Blender/BlenderDNA.h +++ b/code/AssetLib/Blender/BlenderDNA.h @@ -431,6 +431,17 @@ inline bool Structure ::ResolvePointer(std::shared_pt const Field &f, bool) const; +template <> bool Structure :: ResolvePointer( + std::shared_ptr& out, const Pointer & ptrval, + const FileDatabase& db, const Field&, bool) const; +template <> inline void Structure :: Convert (int& dest,const FileDatabase& db) const; +template<> inline void Structure :: Convert (short& dest,const FileDatabase& db) const; +template <> inline void Structure :: Convert (char& dest,const FileDatabase& db) const; +template <> inline void Structure::Convert(unsigned char& dest, const FileDatabase& db) const; +template <> inline void Structure :: Convert (float& dest,const FileDatabase& db) const; +template <> inline void Structure :: Convert (double& dest,const FileDatabase& db) const; +template <> inline void Structure :: Convert (Pointer& dest,const FileDatabase& db) const; + // ------------------------------------------------------------------------------- /** Represents the full data structure information for a single BLEND file. * This data is extracted from the DNA1 chunk in the file.