我想访问std :: unique_ptr中的特定元素

时间:2018-11-03 01:49:34

标签: c++ openssl unique-ptr

当前,我有:

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 :(得分:2)

std::unique_ptr具有成员函数get,该函数返回指向托管对象的指针;如果没有对象,则返回nullptr的指针。

在您的情况下,托管对象的类型为EVP_CIPHER_CTX,而unique_ptr的类型为ctx

因此ctx.get()将为您提供指向EVP_CIPHER_CTX的指针。