class ThreadPool_Extra
{
struct Data
{
int ref;
void* data;
};
typedef std::pair<std::function<void(lua_State*, int)>, Data> Pair;
typedef std::pair<std::thread, Pair> Pair2;
public:
ThreadPool_Extra(lua_State* L)
{
// gmod think function bind.
}
__forceinline void CreateCustomAction(const std::string& name, int ref,
std::function<void(void*)> b,
std::function<void(lua_State*, int)> f)
{
Data data;
data.ref = ref;
data.data = NULL;
std::thread th(b, data.data);
container.insert(Pair2(th, Pair(f, data)));
th.detach();
}
private:
std::map<std::thread, Pair> container;
};
Почему то возникает ошибка несоответствия аргументов, но параметры указаны верно, в чем проблема?