class A
{
public:
void A::B();
}
void A::B()
{
return;
}
То бишь, при объявлении метода указывается квалификатор класса. Расследование показало, что старые и некоторые новые компиляторы поддерживают такую устаревшую нотацию (кстати, ни разу не встречал упоминания про такой метод объявления -- откуда он взялся -- пока не выяснил). Поэтому этот же код собирается в MS Visual Studio вплоть до 2010 версии. Сановский cc: Sun C 5.9 2010/08/11 тоже код пропустил. Однако имеющийся gcc v4.1.2 отказался собирать код со следующей ошибкой:
error: extra qualification ‘A::’ on member ‘B’
Четкого объяснения я не нашел. На форумах пишут только про то, что где-то оно компилится, где-то нет. В пункте "Extra qualification of members" этой страницы есть небольшое описание этой ошибки. Но никаких ссылок на документацию. Ежели есть какая-то информация по этому поводу, поделитесь, плз.
Комментариев нет:
Отправить комментарий