Browse Source

SceneGraph: properly forward references in addChild()/addFeature().

pull/268/merge
Vladimír Vondruš 8 years ago
parent
commit
0557add6e5
  1. 3
      doc/changelog.dox
  2. 2
      src/Magnum/SceneGraph/AbstractObject.h
  3. 2
      src/Magnum/SceneGraph/Object.h

3
doc/changelog.dox

@ -404,6 +404,9 @@ See also:
- Improved @ref TextureTools::distanceField() to work better on shader
compilers that have problems compiling nested loops (WebGL implementations,
some ES2 devices)
- @ref SceneGraph::AbstractObject::addFeature() and
@ref SceneGraph::Object::addChild() were not properly forwarding reference
arguments
@subsection changelog-latest-docs Documentation

2
src/Magnum/SceneGraph/AbstractObject.h

@ -111,7 +111,7 @@ template<UnsignedInt dimensions, class T> class AbstractObject
* Calling `object.addFeature<MyFeature>(args...)` is equivalent to
* `new MyFeature{object, args...}`.
*/
template<class U, class ...Args> U& addFeature(Args... args) {
template<class U, class ...Args> U& addFeature(Args&&... args) {
return *(new U{*this, std::forward<Args>(args)...});
}

2
src/Magnum/SceneGraph/Object.h

@ -193,7 +193,7 @@ template<class Transformation> class Object: public AbstractObject<Transformatio
* Calling `object.addChild<MyObject>(args...)` is equivalent to
* `new MyObject{args..., &object}`.
*/
template<class T, class ...Args> T& addChild(Args... args) {
template<class T, class ...Args> T& addChild(Args&&... args) {
return *(new T{std::forward<Args>(args)..., this});
}

Loading…
Cancel
Save