当前,我有:
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);
我将如何处理?
答案 0 :(得分:2)
std::unique_ptr
具有成员函数get
,该函数返回指向托管对象的指针;如果没有对象,则返回nullptr
的指针。
在您的情况下,托管对象的类型为EVP_CIPHER_CTX
,而unique_ptr
的类型为ctx
。
因此ctx.get()
将为您提供指向EVP_CIPHER_CTX
的指针。