Использую lua из c++ через стандартный api. Начинает надоедать, попробовал luabind - все шикарно, кроме одного: как забиндить, например, std::array::at?
Гугление дало что-то в этом роде:
luabind::module(m_lua) [
luabind::class_<std::array<int, 3>>("Array3I")
.def(luabind::constructor<>())
.def("at", static_cast<int& (std::array<int, 3>::*)(size_t)>(&std::array<int, 3>::at))
];
Не работает, естественно, а виртуальная машина lua вылетает без всяких ошибок, просто перестает дальше выполнять код. Еще советовали тип array сделать через typedef typename, но результат тот же.
PS: И еще вопрос. Что означает звездочка в static_cast? Никогда подобного не встречал.