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

I want to access a particular element within a std::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); 

我该怎么做?

std::unique_ptr has a member function get 其中 returns 指向托管对象的指针或 nullptr 如果没有对象。

在您的情况下,托管对象的类型为 EVP_CIPHER_CTXunique_ptrctx

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