Pull to refresh
11
0
Василий Ковалев @Witcher136

С++ разработчик встроенных систем

Send message

Да, надо бы добавить это. Спасибо:)

Конечно, можно подавить любую ошибку. Это я написал как пример:) обновлю

Спасибо за замечание, в моем проекте просто таких длинных не встречается. Обновлю пример, чтобы можно было для всех использовать:)

На работе просто C++11, поэтому я еще не работал с 17. А чем плохи вызовы самой библиотеки? BIO_write_filename() и PEM_write_bio_X509()?

Спасибо за совет, обновил пример. Работает как часы :)

Может быть я чего-то не знаю, но когда я добавлял расширения, которые есть только в v3 у меня все равно выставлялась версия 1

Надо попробовать сделать так:)

все именно так, поправил :)

Все есть, но как я и написал, чтобы не загромождать пример, умные указатели я оставил на конец. Где и написал, как их можно использовать: std::unique_ptr<X509_EXTENSION, decltype(&::X509_EXTENSION_free)> ex(X509_EXTENSION_new(), ::X509_EXTENSION_free); Моей главной задачей было показать последовательность вызовов, которая поможет решить человеку проблему. Красоту он сможет навести позже, когда у него наконец-то все заработает :)

Все так) и документация оставляет желать лучшего :) Поэтому я и решил написать статью, чтобы помочь остальным в этом нелегком пути познания опенссл

Но таким образом же не будет производится сокрытия старых функций? Я имею в виду, предложенный вами вариант. Мне просто интересно как это сделать в моем любимом с++)
Я правильно понимаю, что в такой реализации мы не можем менять количество аргументов и возвращаемое значение? Мы не можем сделать у декоратора 2 аргумента и убрать возвращаемое значение. А также, не очень понятно про декорирование обычных функций и методов. Их сокрытия же не произойдет
А какой должен быть тип указателя в таком случае?
Наверное, тут должно было быть ==?
'if (auto read = s.read())'
Круто, спасибо за замечание и предложенное решение) У меня почему-то были ошибки компиляции, когда я пытался сделать decltype) Наверное, не там ставил троеточие)
Изначально, в первой версии декоратора, у меня шаблонной была именно структура. А только потом я догадался, как можно лучше это сделать. Так что в принципе, вы действительно можете использоваться namespace или вообще сделать функцию свободной)
1

Information

Rating
Does not participate
Location
Sofiya, Болгария
Date of birth
Registered
Activity

Specialization

Backend Developer, Embedded Software Engineer
Lead
From 10,000 $
Git
PostgreSQL
Python
Linux
Docker
OOP
C++
Software development
Algorithms and data structures