Я хочу получить доступ к определенному элементу в std :: unique_ptr - PullRequest
0 голосов
/ 03 ноября 2018

В настоящее время у меня есть:

using EVP_CIPHER_CTX_free_ptr = std::unique_ptr<EVP_CIPHER_CTX, decltype(&::EVP_CIPHER_CTX_free)>;

Это инициализируется с кодом:

EVP_CIPHER_CTX_free_ptr ctx(EVP_CIPHER_CTX_new(), ::EVP_CIPHER_CTX_free);

Теперь я хочу получить доступ к EVP_CIPHER_CTX внутри этого указателя для функции в формате:

int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *x, int padding); 

Как бы я поступил об этом?

1 Ответ

0 голосов
/ 03 ноября 2018

std::unique_ptr имеет функцию-член get, которая возвращает указатель на управляемый объект, или nullptr, если объект не принадлежит.

В вашем случае управляемый объект имеет тип EVP_CIPHER_CTX, а unique_ptr равен ctx.

Так что ctx.get() даст вам указатель на EVP_CIPHER_CTX.

...