luabind,std::vector返回错误的值

我编写了一个测试函数,它返回一个std :: vector。

std :: vector <unsigned char> readFromSlave(unsigned int _bits){
    std :: vector <unsigned char> helpvector;
    helpvector.push_back((unsigned char10);
    helpvector.push_back((unsigned char20);
    helpvector.push_back((unsigned char30);
    helpvector.push_back((unsigned char40);
    返回helpvector;
}

并像这样在lua中注册它(注册的重要部分):

x.def(“readFromSlave”,&readFromSlave,luabind :: return_stl_iterator);

在lua中调用该函数:

vector = readFromSlave(500);

for value in vector do
    print(value)
end

它只在部分情况下有效,它返回正确数量的元素,但值不正确。

示例输出是:

128
83
0
1

问题可能是什么?

(信息)我已从示例中删除了类和名称空间以缩短它。

点赞