本日のバグ

昨日のバグの逆ヴァージョン発見。アクセス可能なはずのoperator deleteを呼び出せない。

#include <cstdlib>

struct base
{
  void* operator new(std::size_t n) { return std::malloc(n); }
  void operator delete(void* p) { std::free(p); }
};
class deriv: base
{
  public:
  using base::operator new;
  using base::operator delete;
};

int main()
{
  deriv* x = new deriv;
  delete x;
  return 0;
 
}

とりあえずの対応策
private継承を止める。(派生クラスでoperator deleteをオーバーライドしてもVCは無視しやがった)