]> git.saurik.com Git - cycript.git/blobdiff - JavaScript.hpp
Guarantee all the older Cydget bridge definitions.
[cycript.git] / JavaScript.hpp
index 8b5802413c54054429e51ca073a6fa2ab628c327..64dcbace747a36b799f855f58fa30b95a481d987 100644 (file)
@@ -39,6 +39,7 @@
 
 #include "Pooling.hpp"
 #include "String.hpp"
+#include "Utility.hpp"
 
 extern JSStringRef Array_s;
 extern JSStringRef constructor_s;
@@ -114,6 +115,13 @@ JSObjectRef CYCastJSObject(JSContextRef context, JSValueRef value);
 JSValueRef CYJSUndefined(JSContextRef context);
 JSValueRef CYJSNull(JSContextRef context);
 
+void *CYCastPointerEx_(JSContextRef context, JSObjectRef value);
+
+template <typename Type_>
+_finline Type_ CYCastPointerEx(JSContextRef context, JSObjectRef value) {
+    return reinterpret_cast<Type_>(CYCastPointerEx_(context, value));
+}
+
 void *CYCastPointer_(JSContextRef context, JSValueRef value, bool *guess = NULL);
 
 template <typename Type_>
@@ -194,15 +202,9 @@ class CYJSString {
     {
     }
 
-    template <typename Arg0_>
-    CYJSString(Arg0_ arg0) :
-        string_(CYCopyJSString(arg0))
-    {
-    }
-
-    template <typename Arg0_, typename Arg1_>
-    CYJSString(Arg0_ arg0, Arg1_ arg1) :
-        string_(CYCopyJSString(arg0, arg1))
+    template <typename ...Args_>
+    CYJSString(Args_ &&... args) :
+        string_(CYCopyJSString(cy::Forward<Args_>(args)...))
     {
     }