diff options
| author | Chris Pickel <sfiera@gmail.com> | 2011-04-19 22:22:33 -0400 |
|---|---|---|
| committer | Chris Pickel <sfiera@gmail.com> | 2011-04-19 22:22:33 -0400 |
| commit | 7d96bfd5644bd67cab589cf4a4c3230e6f022209 (patch) | |
| tree | 25f800cfbb512c9683c04bc7194210a73f1956f3 | |
| parent | 77a4dd535e223664ce7c0c9780462ed381a4632d (diff) | |
| download | sphinx-7d96bfd5644bd67cab589cf4a4c3230e6f022209.tar.gz | |
Support varargs in C++ function signatures.
| -rw-r--r-- | sphinx/domains/cpp.py | 7 | ||||
| -rw-r--r-- | tests/test_cpp_domain.py | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 588a8466..c2cdd8f5 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -708,6 +708,13 @@ class DefinitionParser(object): self.fail('expected comma between arguments') self.skip_ws() + if self.skip_string('...'): + args.append(ArgumentDefExpr(None, '...', None)) + if self.skip_string(')'): + break + else: + self.fail('expected closing parenthesis after ellipses') + argtype = self._parse_type() argname = default = None self.skip_ws() diff --git a/tests/test_cpp_domain.py b/tests/test_cpp_domain.py index 296de1c8..84649fd1 100644 --- a/tests/test_cpp_domain.py +++ b/tests/test_cpp_domain.py @@ -37,6 +37,9 @@ def test_type_definitions(): x = 'explicit module::myclass::foo::foo()' assert unicode(parse('function', x)) == x + x = 'int printf(const char* fmt, ...)' + assert unicode(parse('function', x)) == x + x = 'std::vector<std::pair<std::string, long long>> module::blah' assert unicode(parse('type_object', x)) == x |
