10 / 7 / 3
Регистрация: 18.03.2020
Сообщений: 57
|
||||||
1 | ||||||
'variable' is not captured19.03.2020, 11:09. Показов 4229. Ответов 7
Вот такой код
'ClientNumber' is not captured
0
|
19.03.2020, 11:09 | |
Ответы с готовыми решениями:
7
Ошибки: capture of non-variable Game::templog, 'this' was not captured for this lambda function Ошибка 'Run-time error '91': Oject variable or with block variable not set' Ошибка Run Time Error 91 (Object variable or block variable not set) Объявить правильно форму object variable or with block variable not set error 91 |
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
||||||
19.03.2020, 11:51 | 2 | |||||
Сообщение было отмечено Master_Tinka как решение
Решение
1
|
2528 / 1247 / 460
Регистрация: 08.11.2016
Сообщений: 3,428
|
|||||||||||
19.03.2020, 11:56 | 3 | ||||||||||
Зачем?
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
19.03.2020, 12:13 | 4 |
Annemesski, тогда смысл теряется. Идея тут в том, что каждая созданная лямбда работает со своим собственным значением ClientNumber, а не с последним добавленным клиентом. Потому это значение и надо захватывать.
0
|
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
|
|
19.03.2020, 12:29 | 5 |
TRam_, если senders - поле класса MyTcpServer, то нормально, поскольку this захватывается
0
|
2528 / 1247 / 460
Регистрация: 08.11.2016
Сообщений: 3,428
|
|
19.03.2020, 13:08 | 6 |
TRam_, Так номер клиента что так что эдак вычисляется как последний индекс в контейнере, там у меня другая ошибка: единицу ненужно вычитать поскольку сначала вычисляется size, а затем происходит упаковка в контейнер, ну и да, в capture list его (size) тоже нужно передать.
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
19.03.2020, 13:14 | 7 |
Алексей1153, речь не о том, что senders недоступно. А в том, что для
senders.at(5) должен был быть вызван именно this->slotClientRead(5); . Даже если к моменту обработки слота QTcpSocket::readyRead размер senders уже будет 10 или 20.Добавлено через 3 минуты Но в любом случае считаю данный подход неправильным. Потому что senders непрерывно наполняется и нигде не очищается. То есть имеется явная утечка памяти.
0
|
2528 / 1247 / 460
Регистрация: 08.11.2016
Сообщений: 3,428
|
|
19.03.2020, 14:11 | 8 |
Тут да: либо утечка памяти, либо, если в
this->slotClientDisconnected(ClientNumber) из контейнера удаляется клиентский сокет, то бьются индексы
1
|
19.03.2020, 14:11 | |
19.03.2020, 14:11 | |
Помогаю со студенческими работами здесь
8
Создание класса и ошибка 'object variable or with block variable not set' Run-time error '91': Oject variable or with block variable not set Run time error 91: Object variable or With block variable not set Исправить ошибку For loop control variable must be simple local variable Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |