notify() is a member function of value_semantic. It is a hook that is provided so that, once the final value of an option is determined, any action that should be taken with that option can be done automatically and be encapsulated in its own function. This prevents code from having one long function that acts on each of the options. As the possible options grow, that kind of procedural code can get unwieldy.
You can see an example of setting a notify function in the Boost manual:
options_description desc;
desc.add_options()
("compression", value<int>()->default_value(10), "compression level")
("email", value< vector<string> >()
->composing()->notifier(&your_function), "email")
;
These declarations specify that default value of the first option is
10, that the second option can appear several times and all instances
should be merged, and that after parsing is done, the library will
call function &your_function, passing the value of the “email” option
as argument.