]> code.bitgloo.com Git - clyne/entityx.git/commitdiff
Added entityx::make_ptr to mirror std::make_shared
authorscott-linder <scott.b.linder@wmich.edu>
Wed, 25 Dec 2013 03:42:03 +0000 (22:42 -0500)
committerscott-linder <scott.b.linder@wmich.edu>
Wed, 25 Dec 2013 03:42:03 +0000 (22:42 -0500)
entityx/config.h.in

index 2e6f000ecdbdea60a9d10b57469195efbf8357ff..940d4d18ceb0ddd74d0e1f3c87acb752298da70d 100644 (file)
@@ -17,6 +17,8 @@ static const uint64_t MAX_COMPONENTS = ENTITYX_MAX_COMPONENTS;
 
 // Which shared_ptr implementation should we use?
 #include <memory>
+// for std::forward()
+#include <utility>
 
 namespace entityx {
 
@@ -35,6 +37,11 @@ using enable_shared_from_this = std::enable_shared_from_this<T>;
 
 namespace entityx {
 
+template <typename T, typename... Args>
+ptr<T> make_ptr(Args&&... args) {
+    return ptr<T>(::new T(std::forward<Args>(args)...));
+}
+
 template <typename T>
 bool operator == (const weak_ptr<T> &a, const weak_ptr<T> &b) {
   return a.lock() == b.lock();