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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
3bOONAL
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 22
#1

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

24.04.2014, 20:39. Просмотров 1888. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 20:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Потоки с стандарте C++ 11. Отсутствуют экземпляры конструктора, соответствующие списку аргументов (C++):

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

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

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов" - C++
#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...

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

Отсутствуют экземпляры конструктора - C++
Добрый день, по условию &quot;b) Создать иерархии наследования: автомобиль - легковой автомобиль, грузовой автомобиль – внедорожник.&quot; я написал...

Отсутствуют экземпляры конструктора - C++
string CreatingaStream(int US,user player,user player2){ int z = 0; string word; getline(cin, word); z++; Sleep(50); ...

14
newbie666
Заблокирован
24.04.2014, 20:42 #2
mas - вас ист дас?
Tvector - определение какое?
0
3bOONAL
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 22
24.04.2014, 21:07  [ТС] #3
C++
1
vector<thread> Tvector;
mas - int mas[3]={1,2,3}; передаю в функцию
0
newbie666
Заблокирован
24.04.2014, 21:12 #4
весь код показыай
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 22:40 #5
Я не экстрасенс, но попробую угадать что автор хочет:
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
newbie666
Заблокирован
24.04.2014, 22:49 #6
Цитата Сообщение от 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
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 22:50 #7
gcc 4.8.2 пропускает. А что не так?
0
newbie666
Заблокирован
24.04.2014, 22:51 #8
P.S.: emplace_back какой выпендрёж, не проще простым пуш баком ?

Добавлено через 53 секунды
Цитата Сообщение от DiffEreD Посмотреть сообщение
gcc 4.8.2 пропускае
ну значит это булшит какой то, тебе ж надо объект создать и потом уже засунуть в вектор
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 22:54 #9
emplace_back конструирует объекты по месту так что вызывать конструктор std::thread не обязательно.
0
newbie666
Заблокирован
24.04.2014, 23:00 #10
Цитата Сообщение от DiffEreD Посмотреть сообщение
emplace_back конструирует объекты по месту так что вызывать конструктор std::thread не обязательно.
Шта? Где про это написано? Пруфани
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 23:08 #11
Ну, к примеру, вот на cppreference.com
1
newbie666
Заблокирован
24.04.2014, 23:24 #12
Цитата Сообщение от 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
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 23:54 #13
Цитата Сообщение от 3bOONAL Посмотреть сообщение
работа с потоками стандарта C++11, в статье на хабре сказано что данные потоки могут принимать любое количество параметров,
Если 12-я студия, то не любое.
0
3bOONAL
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 22
24.04.2014, 23:58  [ТС] #14
вот да да! у меня 12, с 6 параметрами норм, 7 и все, не хочет, а очень надо )) прога в том что перемножение матриц и в функцию потока передаются все 3 массива(1 и 2 множитель, и пустое произведение) а также параметры цикла (3, т.е количество итераций) и плюс 1 параметр это сама функция, по стандарту С++11. как по-другому сделать не представляю. здесь приведена аналогия, количество параметров так же 7 и так же не работает
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 23:59 #15
Многопоточность при сортировке массивов

Добавлено через 41 секунду
Цитата Сообщение от 3bOONAL Посмотреть сообщение
вот да да! у меня 12,
Ставьте 13-ю, и будет вам счастье...
1
24.04.2014, 23:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 23:59
Привет! Вот еще темы с ответами:

LU разложение - отсутствуют экземпляры конструктора - C++
Добрый день. Помогите пожалуйста разобраться с кодом. Код, реализует LU разложение матрицы: #include &lt;iostream&gt; #include...

Вставка в map и ошибка "Отсутствуют экземпляры конструктора" - C++
Подчёркивает map в 3тей строчке и пишет ошибку 1 IntelliSense: отсутствуют экземпляры конструктора &quot;std::pair&lt;_Ty1, _Ty2&gt;::pair &quot;,...

Отсутствуют экземпляры перегруженная функция - C++
Вся проблема в том что если закинуть посложней функцию, то всё. Ошибка. Проблема с sin и т. д. Помогите разобраться код полностью...

Отсутствуют экземпляры перегруженной функции modf - C++
#include &lt;iostream&gt;; #include &lt;conio.h&gt;; #include &lt;cmath&gt;; int main() { using namespace std; cout &lt;&lt; &quot;Vvedit roku&quot; &lt;&lt;...


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

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

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