أنظر معي الكود التالي:
struct Number
{
Number(){}
Number(int value) {}
};
void merge(const Number** array, int length) {}
int main()
{
Number* n[] = { &Number(2), &Number(3), &Number(5), &Number(7) };
merge(n, 4); // C2664
//merge((const Number**)n, 4); // uncomment to resolve
}عند التنفيذ تفشل عملية الترجمه و السبب هو عدم قدرة المترجم على تحويل Number* [4] إلى const Number** و عند إضافة const لتعريف المتغير n يتم إكمال عملية الترجمه دون مشاكل أو بإضافة عملية التحويل بشكل يدوي فما السبب؟؟ أليس وجود const بتعريف المعامل array هو وعد بعدم تغيير قيمة ما يتم تمريره؟
و الله ولي التوفيق

