С тех пор, как у меня были проблемы в моем коде, я сделал следующий McVe.
Я ожидаю, что он будет распечатать задание шаблона актива! Это будет соответствовать только полученным классам. Итак, второе назначение приводит к оператору назначения по умолчанию.
Это неправильное использование требуемого с моей стороны?
#include
#include
struct Base { };
struct Derived : public Base { int A = 0; };
template
class ReferenceWrapper
{
public:
ReferenceWrapper() { }
~ReferenceWrapper() { Buffer = nullptr; }
//Assignment allows upcasting
template requires(std::derived_from || std::same_as)
ReferenceWrapper& operator=(const ReferenceWrapper& Other)
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/795 ... cept-fails