From dc2493e7525bb7633f697ef10f72b72b46222249 Mon Sep 17 00:00:00 2001
From: Andy Belle-Isle <drumsetmonkey@gmail.com>
Date: Fri, 30 Aug 2019 00:45:36 -0400
Subject: Forget what I said, I just need to change git attributes to mark for
 vendor

---
 lib/sol2/examples/source/variadic_args_shifted.cpp | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 lib/sol2/examples/source/variadic_args_shifted.cpp

(limited to 'lib/sol2/examples/source/variadic_args_shifted.cpp')

diff --git a/lib/sol2/examples/source/variadic_args_shifted.cpp b/lib/sol2/examples/source/variadic_args_shifted.cpp
new file mode 100644
index 0000000..c08d711
--- /dev/null
+++ b/lib/sol2/examples/source/variadic_args_shifted.cpp
@@ -0,0 +1,34 @@
+#define SOL_ALL_SAFETIES_ON 1
+#include <sol/sol.hpp>
+
+#include <iostream>
+
+int main () {
+	
+	std::cout << "=== variadic_args shifting constructor ===" << std::endl;
+
+	sol::state lua;
+	lua.open_libraries(sol::lib::base);
+
+	lua.set_function("f", [](sol::variadic_args va) {
+		int r = 0;
+		sol::variadic_args shifted_va(va.lua_state(), 3);
+		for (auto v : shifted_va) {
+			int value = v;
+			r += value;
+		}
+		return r;
+	});
+    
+	lua.script("x = f(1, 2, 3, 4)");
+	lua.script("x2 = f(8, 200, 3, 4)");
+	lua.script("x3 = f(1, 2, 3, 4, 5, 6)");
+	
+	lua.script("print(x)"); // 7
+	lua.script("print(x2)"); // 7
+	lua.script("print(x3)"); // 18
+
+	std::cout << std::endl;
+
+	return 0;
+}
-- 
cgit v1.2.3