aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp23/auto-fncast4.C
blob: 0e26bf2bc6629b755f916b508f119b7bb866761d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 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);
}