![]() |
От: | Аноним | |
Дата: | 25.09.13 18:13 | ||
Оценка: |
#include <functional>
#include <iostream>
#include <thread>
void callback_function(int first, double second)
{
std::cout << first << ' ' << second << '\n';
}
void foo(std::function<void()> callback)
{
callback();
}
int main()
{
std::thread th(std::bind(foo, std::bind(callback_function, 0, 1.0)));
th.join();
}
error C2664: 'void (std::function<void (void)>)' : cannot convert parameter 1 from 'void' to 'std::function<void (void)>'
#include <functional>
#include <iostream>
#include <thread>
void callback_function(int first, double second)
{
std::cout << first << ' ' << second << '\n';
}
void foo(std::function<void()> callback)
{
callback();
}
int main()
{
std::function<void()> callback = std::bind(callback_function, 0, 1.0);
std::thread th(std::bind(foo, callback));
th.join();
}
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/thread.hpp>
#include <iostream>
void callback_function(int first, double second)
{
std::cout << first << ' ' << second << '\n';
}
void foo(boost::function<void()> callback)
{
callback();
}
int main()
{
boost::thread th(boost::bind(foo, boost::bind(callback_function, 0, 1.0)));
th.join();
}
error C2664: 'void (boost::function<void (void)>)' : cannot convert parameter 1 from 'void' to 'boost::function<void (void)>'
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/thread.hpp>
#include <iostream>
void callback_function(int first, double second)
{
std::cout << first << ' ' << second << '\n';
}
void foo(boost::function<void()> callback)
{
callback();
}
int main()
{
boost::function<void()> callback = boost::bind(callback_function, 0, 1.0);
boost::thread th(boost::bind(foo, callback));
th.join();
}