Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Clarification Rule 0.2.1
#1
Hi,

I have a question regarding rule 0.2.1 on the following code:
Code:
namespace {

struct Base {
  Base() {
    // do resource management
  }
};

struct Derived : public Base {
  // has implicit default constructor that calls user-provided Base()
};

Base b; // (1) compliant
Derived d; // (2) compliant or non-compliant for rule 0.2.1 ?

}

Case (1) is clearly compliant as b has class type Base and Base has a user-provided constructor.
Case (2) is unclear, as the default constructor of Derived is not user-provided, if I understand the C++ standard correctly, as the user does not declare it at all.
Still case (2) seems fine and in line with the rule's rationale.

It would be great to get a clarification whether case (2) is considered compliant or not, and if compliant, what the intended definition of "use" should be.
Thanks a lot!
Reply


Messages In This Thread
Clarification Rule 0.2.1 - by hahn - 27-08-2026, 11:32 AM
RE: Clarification Rule 0.2.1 - by misra cpp - 28-08-2026, 12:01 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)