Skip to content

Commit 92b5b24

Browse files
committed
Fix another gcc error due to cc70774
1 parent 6769207 commit 92b5b24

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

include/luxrays/core/namedobjectvector.h

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,10 @@ class NamedObjectVector {
100100
/// destroyed. The object holder (unique_ptr) is returned
101101
/// to caller for further finalization
102102
template<typename T>
103-
std::unique_ptr<T> DeleteObj(const std::string &name) {
104-
auto oldObjPtr = DeleteObj<NamedObject>(name);
105-
auto oldDerivedPtr = oldObjPtr ?
106-
dynamic_uptr_cast<T>(std::move(oldObjPtr)) :
107-
std::unique_ptr<T>();
108-
return std::move(oldDerivedPtr);
109-
}
103+
std::unique_ptr<T> DeleteObj(const std::string &name);
110104

111-
// DeleteObj explicit instantiation for NamedObject
112-
template<>
113-
NamedObjectUPtr DeleteObj<NamedObject>(const std::string &name);
114-
115-
105+
template<> // Specialization for NamedObject; other types will rely on it
106+
std::unique_ptr<NamedObject> DeleteObj<NamedObject>(const std::string &name);
116107

117108
void DeleteObjs(const std::vector<std::string> &names);
118109

@@ -185,11 +176,15 @@ template<>
185176
std::tuple< NamedObject&, std::unique_ptr<NamedObject> >
186177
NamedObjectVector::DefineObj(std::unique_ptr<NamedObject>&& obj);
187178

188-
// Specialization (declaration) of DeleteObj for NamedObject class, so that
189-
// derived classes can rely on it
190-
template<>
191-
std::unique_ptr<NamedObject>
192-
NamedObjectVector::DeleteObj(const std::string &name);
179+
// Out-of-class definition for DeleteObj
180+
template<typename T>
181+
std::unique_ptr<T> NamedObjectVector::DeleteObj(const std::string &name) {
182+
auto oldObjPtr = DeleteObj<NamedObject>(name);
183+
auto oldDerivedPtr = oldObjPtr ?
184+
dynamic_uptr_cast<T>(std::move(oldObjPtr)) :
185+
std::unique_ptr<T>();
186+
return std::move(oldDerivedPtr);
187+
}
193188

194189
} // Namespace luxrays
195190

0 commit comments

Comments
 (0)