Demonstrate workaround for pointer to ref member

closes #302
This commit is contained in:
Jason Turner 2016-12-06 14:51:00 -07:00
parent 624c7c435b
commit 51663df1ba

View File

@ -1195,7 +1195,14 @@ struct Reference_MyClass
TEST_CASE("Test reference member being registered")
{
chaiscript::ChaiScript_Basic chai(create_chaiscript_stdlib(),create_chaiscript_parser());
chai.add(chaiscript::fun(&Reference_MyClass::x) , "x");
// Note, C++ will not allow us to do this:
// chai.add(chaiscript::fun(&Reference_MyClass::x) , "x");
chai.add(chaiscript::fun([](Reference_MyClass &r) -> decltype(auto) { return (r.x); }), "x");
chai.add(chaiscript::fun([](const Reference_MyClass &r) -> decltype(auto) { return (r.x); }), "x");
double d;
chai.add(chaiscript::var(Reference_MyClass(d)), "ref");
chai.eval("ref.x = 2.3");
CHECK(d == 2.3);
}