Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bushmeister
22 / 22 / 6
Регистрация: 19.03.2015
Сообщений: 137
#1

Использование std::function в std::thread - C++

15.04.2016, 13:14. Просмотров 507. Ответов 2
Метки нет (Все метки)

Нужно вызвать function fnc в новом потоке. Как сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function <void(vector<char>)> fnc;
 
void test(vector<char> data)
{
    for (int i = 0; i < data.size(); i++)
        cout << data[i];
    cout << endl;
}
 
int main()
{
    vector<char> data = { 'a', 'b', 'c', 'd','e', 'f' };
    fnc = test;
    thread thr(fnc);
    thr.detach();
    cout << u8"Finished" << endl;
    cin.get();
    return 0;
}
Выводит ошибку
Error C2893 Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...)'

Нужные хэдеры и неймспейсы подключены.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2016, 13:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Использование std::function в std::thread (C++):

Какая реализация лучше? std::pointer_to_binary_function vs std::function - C++
Какая реализация (set_p или set_f) лучше /современнее / эффективнее ? pointer_to_binary_function в С++11 объявлен как deprecated. Правильно...

Std::function and std::vector - C++
Как положить обёртки в вектор? Не используя библиотеку boost. function&lt;void(int)&gt; first_func() = one(); function&lt;void(int)&gt;...

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

2
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
15.04.2016, 13:42 #2
C++
1
thread thr(std::bind(&fnc, std::cref(data)));
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,770
Записей в блоге: 3
Завершенные тесты: 1
15.04.2016, 13:48 #3
C++
1
thread thr(fnc, cref(data));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2016, 13:48
Привет! Вот еще темы с ответами:

Ошибка компиляции "no instance of constructor 'std::thread::thread' matches the argument list" - C++
Не могу сообразить почему возникает ошибка. У меня в классе есть метод, который должен работать в нескольких потоках одновременно. Вот он: ...

Boost::thread vs std::thread - C++
Доброго времени суток, решил углубить свои знания, и решил почитать про потоки, бустовые и те что в 11 стандарте приняли, с бустом все ясно...

std::thread - C++
Возник вопрос: как создать массив потоков (точнее, как его инициализировать). То есть, мне нужно примерно такое: std::thread...

Std::thread в классе - C++
Всем привет есть код #include&lt;thread&gt; #include&lt;iostream&gt; class SomeClass { public : SomeClass(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru