Вот кусок кода, хочу его запустить отдельным потоком
if (keyLength == 1024)
rsa.generateKeys(RSA::RSA_1024);
else if (keyLength == 2048)
rsa.generateKeys(RSA::RSA_2048);
Ну вот написал так:
if (keyLength == 1024)
std::thread(rsa.generateKeys, RSA::RSA_1024).join();
else if (keyLength == 2048)
std::thread(rsa.generateKeys, RSA::RSA_2048).join();
Пытаюсь скомпилить, нифига не выходит. Вылезает куча ошибок:
Прототип функции:
enum KeyLength {RSA_1024 = 512, RSA_2048 = 1024};
void generateKeys(KeyLength keyLength = RSA_2048);
UPDATE:
if (keyLength == 1024)
std::thread(&RSA::generateKeys, &rsa, RSA::RSA_1024).join();
else if (keyLength == 2048)
std::thread(&RSA::generateKeys, &rsa, RSA::RSA_2048).join();
Вроде заработало
При передаче указателя на нестатическую функцию-член, нужно вторым аргументом передавать указатель на класс, членом которого она является, в данном случае, this. Это относится к большинству функций std, которым можно передать функциональный объект в качестве аргумента (обычно в таких случаях аргументы интерпретируются как в std::bind).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Как получить длительность музыки в QMediaPlayer? Я сделал всё, что в моих силахduration возвращает всегда 0
Хочу сделать изменение любого выбранного символа в массиве через указатели
Программно получаю строки (c++, std::string) с неоформленным html кодом, можно ли как-то строки программно обрабатывать и придавать html коду оформление,...