Простой вопрос, действительно ли это C ++:
class Foo
{
void Foo::doSomething();
};
Суть вопроса: многократное использование имени класса и двойного двоеточия перед именем метода действительно внутри объявления класса?
У меня проблемы с компиляцией кода, который делает это с помощью g ++ 4.2.3. Мне бы очень хотелось увидеть здесь ссылку на что-то, описывающее синтаксис, прежде чем копаться и менять код. Или понизить компилятор; это делает с g ++ 3.3.6.
Ошибка, которую я получаю (примерно):
Foo.h:3: error: extra qualification ‘Foo::’ on member ‘doSomething’
Я сделал Google, но ничего не смог придумать. У меня нет стандарта, и даже если бы я это сделал, мне, вероятно, потребовалось бы много времени, чтобы найти что-нибудь авторитетное. Я не адвокат по языку C ++.