Please look at this code

```
class Bond
{
    public:
        Bond(int payments_per_year, int period_lengths_in_months);
        Bond() = default;

    private:
        const int payments_per_year;
        const int period_length_in_months;
    };

int main()
{
    Bond b; // Error here
}

```

When attempting to compile I get an error:

> 
> error C2280: 'Bond::Bond(void)': attempting to reference a deleted function".
> 
> 
> 

It's not a "rule of 3" violation since I've added the default constructor back.

Why doesn't the compiler recognise `Bond() = default;`?