Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/41: Рейтинг темы: голосов - 41, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 22

Потоки с стандарте C++ 11. Отсутствуют экземпляры конструктора, соответствующие списку аргументов

24.04.2014, 20:39. Показов 8558. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
Tvector.push_back(thread(threadFunction,mas,i,3,4,76,55));
сама функция
C++
1
2
3
4
5
6
7
8
9
void threadFunction(int *arr, int b,int c , int z,int q,int r)
{
     g_lock.lock();
 
 cout << arr[b]+1<<c<<z<<q<<endl;
 cout << "entered thread " << std::this_thread::get_id() << std::endl;
 
     g_lock.unlock();
}
1 IntelliSense: отсутствуют экземпляры конструктора "std::thread::thread", соответствующие списку аргументов
типы аргументов: (void (int *arr, int b, int c, int z, int q, int r), int [3], int, int, int, int, int)
Имеется такой участок кода и такая ошибка, работа с потоками стандарта C++11, в статье на хабре сказано что данные потоки могут принимать любое количество параметров, но тут что то не получается, помогите разобраться^^
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2014, 20:39
Ответы с готовыми решениями:

Потоки. Ошибка отсутствуют экземпляры конструктора, соответствующие списку аргументов
void Engine::run() { long startTime; long timeMillis; long waitTime; long totalTime = 0; int frameCount = 0; ...

Ошибка: E0304 отсутствуют экземпляры перегруженной функции, соответствующие списку аргументов stiff_system...
std::vector&lt;std::function&lt;double(double, double, double, double, double, double) &gt;&gt; vfunc; vfunc.push_back(dy0dt); ...

Отсутствуют экземпляры перегруженной функции "modf", соответствующие списку аргументов
в чем причина #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; int bin(double dex) { double c = modf(19.5,2); } ...

14
Заблокирован
24.04.2014, 20:42
mas - вас ист дас?
Tvector - определение какое?
0
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 22
24.04.2014, 21:07  [ТС]
C++
1
vector<thread> Tvector;
mas - int mas[3]={1,2,3}; передаю в функцию
0
Заблокирован
24.04.2014, 21:12
весь код показыай
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 22:40
Я не экстрасенс, но попробую угадать что автор хочет:
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
28
#include <iostream>
#include <vector>
#include <thread>
#include <mutex>
 
std::mutex g_lock;
 
void threadFunction(int *arr, int b, int c , int z, int q)
{
    std::lock_guard<std::mutex> locker(g_lock);
    std::cout << arr[b]+1 << " " << c << " " << " " << z << " " << q << std::endl;
    std::cout << "thread id:  " << std::this_thread::get_id() << std::endl;
}
 
int main()
{
    std::vector<std::thread> Tvector;
    int mas[] = {1, 2, 3};
 
    Tvector.emplace_back(threadFunction, mas, 0, 100, 100, 100);
    Tvector.emplace_back(threadFunction, mas, 1, 200, 200, 200);
    Tvector.emplace_back(threadFunction, mas, 0, 300, 300, 300);
    Tvector.emplace_back(threadFunction, mas, 1, 400, 400, 400);
 
    for (auto& th : Tvector) th.join();
 
    return 0;
}
0
Заблокирован
24.04.2014, 22:49
Цитата Сообщение от DiffEreD Посмотреть сообщение
Я не экстрасенс
и не прогер , твой код даже не компильнётся

Добавлено через 3 минуты
тут ты опечатался что ли, надо так:
C++
1
2
3
4
Tvector.emplace_back(std::thread(threadFunction, mas, 0, 100, 100, 100));
Tvector.emplace_back(std::thread(threadFunction, mas, 1, 200, 200, 200));
Tvector.emplace_back(std::thread(threadFunction, mas, 0, 300, 300, 300));
Tvector.emplace_back(std::thread(threadFunction, mas, 1, 400, 400, 400));
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 22:50
gcc 4.8.2 пропускает. А что не так?
0
Заблокирован
24.04.2014, 22:51
P.S.: emplace_back какой выпендрёж, не проще простым пуш баком ?

Добавлено через 53 секунды
Цитата Сообщение от DiffEreD Посмотреть сообщение
gcc 4.8.2 пропускае
ну значит это булшит какой то, тебе ж надо объект создать и потом уже засунуть в вектор
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 22:54
emplace_back конструирует объекты по месту так что вызывать конструктор std::thread не обязательно.
0
Заблокирован
24.04.2014, 23:00
Цитата Сообщение от DiffEreD Посмотреть сообщение
emplace_back конструирует объекты по месту так что вызывать конструктор std::thread не обязательно.
Шта? Где про это написано? Пруфани
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 23:08
Ну, к примеру, вот на cppreference.com
1
Заблокирован
24.04.2014, 23:24
Цитата Сообщение от DiffEreD Посмотреть сообщение
Ну, к примеру, вот на cppreference.com
всё вижу, не знал редко этой штукой пользовался, а когда пользовался, просто сувал туда новый объект... странно что это так же нормально работало. Меня тут строчка настроражила:
If the new size() is greater than capacity() then all iterators and references (including the past-the-end iterator) are invalidated. Otherwise only the past-the-end iterator is inva
Этот emplace разве не реалоцирует память под больший размер контейнера, если размер превышен? Или о чём там написано? Что если новый размер, после имплейса, будет больше капасити - то всё - хана - все указатели становятся инвалидами?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 23:54
Цитата Сообщение от 3bOONAL Посмотреть сообщение
работа с потоками стандарта C++11, в статье на хабре сказано что данные потоки могут принимать любое количество параметров,
Если 12-я студия, то не любое.
0
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 22
24.04.2014, 23:58  [ТС]
вот да да! у меня 12, с 6 параметрами норм, 7 и все, не хочет, а очень надо )) прога в том что перемножение матриц и в функцию потока передаются все 3 массива(1 и 2 множитель, и пустое произведение) а также параметры цикла (3, т.е количество итераций) и плюс 1 параметр это сама функция, по стандарту С++11. как по-другому сделать не представляю. здесь приведена аналогия, количество параметров так же 7 и так же не работает
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 23:59
Многопоточность при сортировке массивов

Добавлено через 41 секунду
Цитата Сообщение от 3bOONAL Посмотреть сообщение
вот да да! у меня 12,
Ставьте 13-ю, и будет вам счастье...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2014, 23:59
Помогаю со студенческими работами здесь

Отсутствуют экземпляры шаблон функции "print", соответствующие списку аргументов
Подскажите, почему ругается на вызов функции print? #include &lt;iostream&gt; using namespace std; template &lt;class T&gt; ...

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов"
#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;map&gt; #include &lt;Windows.h&gt; #include &lt;functional&gt; #include &lt;string&gt; #include...

Отсутствуют экземпляры конструктора
#include &lt;string&gt; using std::string; class GradeBook { private: string Coursename; string Name; public: GradeBook...

Отсутствуют экземпляры конструктора
есть класс class Sprite : public Renderable2D { public: Sprite(float x, float y, float width, float height,...

Отсутствуют экземпляры конструктора
Иншалла, парни! Решаю вот такое задание: Реализуйте абстрактный класс Expression с чисто виртуальными методами Expression* diff(); и...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru