The following code example is taken from the book
 
  C++17 - The Complete Guide
 by Nicolai M. Josuttis,
 Leanpub, 2017 
 
 The code is licensed under a
 
     Creative Commons Attribution 4.0 International License.
     
 
 
// raw code
 
struct Derived; 
 
struct Base { 
 friend struct Derived; 
 private:  
  Base() { 
  } 
}; 
 
struct Derived : Base { 
}; 
 
int main() 
{ 
  Derived d1{};    // ERROR since C++17  
  Derived d2;      // still OK (but might not initialize)  
}