From 01db553c49345b683ff9da3283bc92a8c2933af2 Mon Sep 17 00:00:00 2001 From: danielytics Date: Wed, 7 Mar 2018 10:27:34 +0000 Subject: adds Array::make and Dictionary::make static methods and has variadic template functions use those --- include/core/Array.hpp | 6 ++++++ include/core/Dictionary.hpp | 5 +++++ include/core/Godot.hpp | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'include/core') diff --git a/include/core/Array.hpp b/include/core/Array.hpp index 2320568..ead3ba3 100644 --- a/include/core/Array.hpp +++ b/include/core/Array.hpp @@ -3,6 +3,7 @@ #include +#include "Defs.hpp" #include "String.hpp" namespace godot { @@ -39,6 +40,11 @@ public: Array(const PoolColorArray& a); + template + static Array make(Args... args) { + return helpers::append_all(Array(), args...); + } + Variant& operator [](const int idx); Variant operator [](const int idx) const; diff --git a/include/core/Dictionary.hpp b/include/core/Dictionary.hpp index ec496af..613d6ce 100644 --- a/include/core/Dictionary.hpp +++ b/include/core/Dictionary.hpp @@ -16,6 +16,11 @@ public: Dictionary(const Dictionary & other); Dictionary & operator=(const Dictionary & other); + template + static Dictionary make(Args... args) { + return helpers::add_all(Dictionary(), args...); + } + void clear(); bool empty() const; diff --git a/include/core/Godot.hpp b/include/core/Godot.hpp index 8c463b6..01bee09 100644 --- a/include/core/Godot.hpp +++ b/include/core/Godot.hpp @@ -487,7 +487,7 @@ void register_signal(String name, Dictionary args = Dictionary()) template void register_signal(String name, Args... varargs) { - register_signal(name, helpers::add_all(Dictionary(), varargs...)); + register_signal(name, Dictionary::make(varargs...)); } } -- cgit v1.2.3