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

I want to access a particular element within a std::unique_ptr

本文关键字:一个 元素 std 访问 unique ptr      更新时间:2023-10-16

目前我有:

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); 

我该怎么做?

std::unique_ptr有一个成员函数get,它返回一个指向托管对象的指针,如果没有对象,则返回nullptr

在您的情况下,托管对象的类型是EVP_CIPHER_CTX,而unique_ptrctx

所以ctx.get()会给你一个指向EVP_CIPHER_CTX的指针。