Сделал простую перегрузку
C++ |
1
2
3
4
5
| template <class AnyData>
LUA& LUA::operator << (AnyData Data){
Push(Data);
return (*this);
} |
|
Push'ы просты:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| void LUA::Push(const bool& arg){
lua_pushboolean(pL, arg ? 1 : 0);
}
void LUA::Push(const double& arg){
lua_pushnumber(pL, arg);
}
void LUA::Push(const int& arg){
lua_pushnumber(pL, arg);
}
void LUA::Push(char& arg){
lua_pushstring(pL, &arg);
}
void LUA::Push(const char& arg){
lua_pushstring(pL, &arg);
}
void LUA::Push(const char& arg, int len){
lua_pushlstring(pL, &arg, len);
}
void LUA::Push(const std::string& arg){
lua_pushstring(pL, arg.c_str());
}
void LUA::Push(const std::string& arg, int len){
lua_pushlstring(pL, arg.c_str(), len);
}
void LUA::Push(lua_CFunction CFunc){
lua_pushcfunction(pL, CFunc);
} |
|
Выполняю:
C++ |
1
| Lua << "talk" << 2 << 4; |
|
Прохожу дебаггером... и первым делом куда переходит указатель дебага является перегрузка
void LUA::Push(const bool& arg) с аргументом true... интересно так безпалевно конвертировать char* в bool ( чтобы это значило?