So I was learning about constructor initializer list and I wrote the following code :
class Mango
{
  public:
  Mango(){cout<<"Mango::ctor()";}
  Mango(const Mango& other){cout<<"Mango::copy_ctor()";}
};
class Box
{
    public:
    Box() : mango(Mango()) //**doesn't call copy constructor**
    {
    }
    Mango mango;
};
int main()
{
  Box box; 
   return 0;
}
I used g++ compiler for this. Its calling the constructor not copy constructor. It should call copy constructor right because I am creating an object to create another object? What's the issue here and what does standard says about it?
 
     
     
    