From bd3fe0cac583739bc0d7c4b5c8f301bb350abca0 Mon Sep 17 00:00:00 2001
From: Andy Belle-Isle <drumsetmonkey@gmail.com>
Date: Fri, 30 Aug 2019 00:19:31 -0400
Subject: Renamed lib to deps so github will ignore it for language stats

---
 .../source/overridable_function_members.cpp        | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 deps/sol2/examples/source/overridable_function_members.cpp

(limited to 'deps/sol2/examples/source/overridable_function_members.cpp')

diff --git a/deps/sol2/examples/source/overridable_function_members.cpp b/deps/sol2/examples/source/overridable_function_members.cpp
new file mode 100644
index 0000000..3fe17f1
--- /dev/null
+++ b/deps/sol2/examples/source/overridable_function_members.cpp
@@ -0,0 +1,42 @@
+#define SOL_ALL_SAFETIES_ON 1
+#include <sol/sol.hpp>
+
+#include <iostream>
+
+int main() {
+	std::cout << "=== override-able member functions ===" << std::endl;
+
+	struct thingy {
+		sol::function paint;
+
+		thingy(sol::this_state L) : paint(sol::make_reference<sol::function>(L.lua_state(), &thingy::default_paint)) {
+		}
+
+		void default_paint() {
+			std::cout << "p" << std::endl;
+		}
+
+	};
+
+	sol::state lua;
+	lua.open_libraries(sol::lib::base);
+
+	lua.new_usertype<thingy>("thingy",
+		sol::constructors<thingy(sol::this_state)>(),
+		"paint", &thingy::paint);
+
+	sol::string_view code = R"(
+obj = thingy.new()
+obj:paint()
+obj.paint = function (self) print("g") end
+obj:paint()
+function obj:paint () print("s") end
+obj:paint()
+)";
+
+	lua.safe_script(code);
+
+	std::cout << std::endl;
+
+	return 0;
+}
\ No newline at end of file
-- 
cgit v1.2.3