class FuncDefExpr(NamedDefExpr):
def __init__(self, name, visibility, static, explicit, rv,
- signature, const, pure_virtual):
+ signature, const, pure_virtual, virtual):
NamedDefExpr.__init__(self, name, visibility, static)
self.rv = rv
self.signature = signature
self.explicit = explicit
self.const = const
self.pure_virtual = pure_virtual
+ self.virtual = virtual
def get_id(self):
return u'%s%s%s' % (
buf = self.get_modifiers()
if self.explicit:
buf.append(u'explicit')
+ if self.virtual:
+ buf.append(u'virtual')
if self.rv is not None:
buf.append(unicode(self.rv))
buf.append(u'%s(%s)' % (self.name, u', '.join(
self.skip_ws()
else:
explicit = False
+ if self.skip_word('virtual'):
+ virtual = True
+ self.skip_ws()
+ else:
+ virtual = False
rv = self._parse_type()
self.skip_ws()
# some things just don't have return values
rv = None
else:
name = self._parse_type()
- return FuncDefExpr(name, visibility, static, explicit, rv,
- *self._parse_signature())
+ return FuncDefExpr(name, visibility, static, explicit, rv,
+ *self._parse_signature(), virtual = virtual)
def parse_class(self):
visibility, static = self._parse_visibility_static()
if func.explicit:
signode += addnodes.desc_annotation('explicit', 'explicit')
signode += nodes.Text(' ')
+ if func.virtual:
+ signode += addnodes.desc_annotation('virtual', 'virtual')
+ signode += nodes.Text(' ')
# return value is None for things with a reverse return value
# such as casting operator definitions or constructors
# and destructors.