Qual é o objetivo de uma declaração como int (x); ou int (x) = 10;

Se você olhar para a gramática*declarator*s in §8/4 você notará que umnoptr-declarator pode ser escrito como (ptr-declarator), ou seja, pode ser escrito como (declarator-id), que valida declarações como as do título. De fato, esse código é compilado sem problemas:

#include <iostream>
struct A{ int i;};
int (x) = 100;
A (a) = {2};
int main()
{
    std::cout << x << '\n';
    std::cout << a.i << '\n';
}

Masqual é o objetivo de permitir esses parênteses quando um ponteiro (para uma matriz ou função) não está envolvido na declaração?

questionAnswers(2)

yourAnswerToTheQuestion