Во-первых, если вам действительно нужно, вы можете привести любой тип указателя к любому другому типу указателя.Например, вы можете привести к void*
в качестве промежуточного шага.
Во-вторых, с указателями на указатели, это не так много, что есть причина усложнять отдельные случаи, поскольку нет специальных правилчтобы упростить какие-либо конкретные случаи.
По сути, у вас есть указатель на X
- где X
в вашем случае оказывается другим указателем.Некоторые X
случаи получают специальную обработку (например, производные классы могут неявно приводиться к базам) - но ваш X
не является одним из них.Это не базовый класс - это указатель.Не существует неявных приведений, определенных для derived**
, кроме void*
- вы даже не можете явным образом привести derived**
к void**
.
Не думаю, что const
имеет многов этом случае, хотя я мог что-то упустить.