| // PR c++/103049 |
| // P0849R8 - auto(x) |
| // { dg-do compile { target c++23 } } |
| |
| class cmdline_parser |
| { |
| public: |
| cmdline_parser(char const*); |
| |
| auto add_option(char const*, char const*) & -> cmdline_parser &; |
| auto add_option(char const*, char const*) && -> cmdline_parser &&; |
| |
| void parse(int, char**); |
| }; |
| |
| int main(int argc, char *argv[]) |
| { |
| auto cmdline = cmdline_parser("driver"); |
| |
| cmdline.add_option("-h", "show help messages") |
| .add_option("-v", "show version"); |
| |
| auto internal = auto(cmdline).add_option("--logging-level", "set logging level to 1-3") |
| .add_option("--dump-full", "do not minimize dump"); |
| internal.parse(argc, argv); |
| } |