Commit c10bece4955d6122e0ce6d34d57c3729d99cd8a1
1 parent
9c55fa28
Making app pointer optional
Showing
2 changed files
with
10 additions
and
4 deletions
include/CLI.hpp
| ... | ... | @@ -596,9 +596,16 @@ protected: |
| 596 | 596 | std::function<void(App*)> app_callback; |
| 597 | 597 | |
| 598 | 598 | public: |
| 599 | - | |
| 600 | - void set_callback(std::function<void(App*)> callback) { | |
| 599 | + /// Set a callback to run at the end of parsing | |
| 600 | + App* set_callback(std::function<void(App*)> callback) { | |
| 601 | 601 | app_callback = callback; |
| 602 | + return this; | |
| 603 | + } | |
| 604 | + | |
| 605 | + /// Don't have to worry about explicit App* in argument | |
| 606 | + App* set_callback(std::function<void()> callback) { | |
| 607 | + app_callback = [callback](App*){callback();}; | |
| 608 | + return this; | |
| 602 | 609 | } |
| 603 | 610 | |
| 604 | 611 | void run_callback() { | ... | ... |
tests/CLITest.cpp
| ... | ... | @@ -338,10 +338,9 @@ TEST_F(TApp, Callbacks) { |
| 338 | 338 | }); |
| 339 | 339 | auto sub2 = app.add_subcommand("sub2"); |
| 340 | 340 | bool val = false; |
| 341 | - sub2->set_callback([&val](CLI::App*){ | |
| 341 | + sub2->set_callback([&val](){ | |
| 342 | 342 | val = true; |
| 343 | 343 | }); |
| 344 | - | |
| 345 | 344 | |
| 346 | 345 | app.reset(); |
| 347 | 346 | args = {"sub2"}; | ... | ... |