Используемый случай указателя на массив с неопределенными границами в C ++ (не в C)
Рассмотрим следующий код:
int main() {
int (*p)[]; // pointer to array with unspecified bounds
int a[] = {1};
int b[] = {1,2};
p = &a; // works in C but not in C++
p = &b; // works in C but not in C++
return 0;
}
В чистом C вы можете назначить указатель на этот тип адреса массива любого измерения. Но в C ++ вы не можете. Я нашел один случай, когда компилятор позволяет присваивать значение такому указателю:
struct C
{
static int v[];
};
int main()
{
int (*p)[] = &C::v; // works in C++ if 'v' isn't defined (only declared)
return 0;
}
Но не смог найти ни одного полезного случая этого кода.
Может ли кто-нибудь привести полезный пример (в C ++) указателя на массив с неопределенными границами? Или это только остаток, оставшийся от C?