2008-10-16 2 views
2

У меня есть исходный код на C++ с шаблонами, возможно, так: doxygen работает без ошибок, но ни одна из документации не добавляется к выходу, что происходит?Doxygen не будет индексировать мой источник C++ - почему бы и нет?

/// 
/// A class 
/// 
class A 
{ 
    /// 
    /// A typedef 
    /// 
    typedef B<C<D>> SomeTypedefOfTemplates; 
}; 

ответ

4

Да, так происходит то, что экземпляр шаблона является фиктивным. «>>», как это, является неоднозначным и предназначен для ошибки времени компиляции. Вы не могли этого видеть, потому что, возможно, ваш компилятор (VC++) позволил ему проскользнуть, но я полагаю, что doxygen был более строгим. Добавьте пробел, как показано.

/// 
/// A class 
/// 
class A 
{ 
    /// 
    /// A typedef 
    /// 
    typedef B<C<D> > SomeTypedefOfTemplates; 
}; 
+1

Yep, the >> интерпретируется как оператор сдвига вправо. Однако C++ 0x изменит это поведение. См. Http://en.wikipedia.org/wiki/C%2B%2B0x#Angle_bracket – 2008-10-16 21:33:30

6

Обратите внимание, что doxygen теперь поддерживает закрытие шаблона с помощью оператора shift shift (начиная с версии 1.6.0).

Также см. http://bugzilla.gnome.org/show_bug.cgi?id=560512 для обсуждения проблемы и решения.

Смежные вопросы