| // Testcase from P0305R1 |
| // { dg-do compile { target c++17 } } |
| |
| #include <string> |
| #include <map> |
| #include <algorithm> |
| |
| std::map<int, std::string> m; |
| extern int xread (int *); |
| extern void publish (int), xraise (int); |
| |
| void |
| foo () |
| { |
| if (auto it = m.find (10); it != m.end ()) { std::string s = it->second; } |
| if (char buf[10]; std::fgets(buf, 10, stdin)) { m[0] += buf; } |
| if (int s; int count = xread (&s)) { publish(count); xraise(s); } |
| |
| const char *s; |
| if (auto keywords = {"if", "for", "while"}; |
| std::any_of(keywords.begin(), keywords.end(), [&s](const char* kw) { return s == kw; })) |
| { |
| // whatever |
| } |
| } |