Some classes delete the copy constructor, as it's unsound, but allow operator=(Self&)

Basic Infos

  • This issue complies with the issue POLICY doc.
  • I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • I have filled out all fields below.

Platform

  • Core Version: 684156d
  • Development Env: Platformio
  • Operating System: Windows-WSL2

Problem Description

Seeing this issue/comment #8522 inspired me to check for other places where we were forgetting to delete some constructor/assignment. And it turned out I found a few places with problems that would lead to invalid logic.

MCVE Sketch

This should compile, but it doesn't

#include <WiFiClientSecureBearSSL.h>

void setup() {
  static_assert(!std::is_copy_constructible<BearSSL::WiFiClientSecureCtx>());
  static_assert(!std::is_copy_assignable<BearSSL::WiFiClientSecureCtx>());
  static_assert(!std::is_copy_constructible<BearSSL::PublicKey>());
  static_assert(!std::is_copy_assignable<BearSSL::PublicKey>());
  static_assert(!std::is_copy_constructible<BearSSL::PrivateKey>());
  static_assert(!std::is_copy_assignable<BearSSL::PrivateKey>());
  static_assert(!std::is_copy_constructible<BearSSL::X509List>());
  static_assert(!std::is_copy_assignable<BearSSL::X509List>());
}
void loop() {}