#include "luawrap.h" luawrap::Number sum(const luawrap::Arguments& args) { luawrap::Number n = 0; for (luawrap::Arguments::iterator it = args.begin(); it != args.end(); ++it) { try { n += luawrap::cast(*it); } catch (luawrap::bad_cast& e) { throw luawrap::error("number expected, but %s given", it->typestr()); } } return n; } luawrap::Table iota(int n) { luawrap::Table result; for (int i = 0; i < n; ++i) result.append(i); return result; } int main() { luawrap::State L = luawrap::createState(); L.global("sum") = sum; L.global("iota") = iota; L.global("TheAnswer") = 42; L << "print \"The answer should be:\", sum(TheAnswer, -1, +1)"; std::ifstream ifs("test.lua"); L << ifs; return 0; }