Dear all,
I am having a problem with the Program Options lib.
I am using Archlinux and  boost-libs 1.55.0-6.
Consider the simple code:

#include "boost/program_options.hpp"
 
#include <iostream>
#include <string>
 
int main(int argc, char** argv)
{
    int add(5);
    namespace po = boost::program_options;
    po::options_description desc("Options");
    desc.add_options()
        ("help", "Print help messages")
        ("add",po::value<int>(&add)->required(), "additional options")
        ("like", "this");

    po::variables_map vm;
    po::store(po::parse_command_line(argc, argv, desc),  vm);

    if ( vm.count("help")  )
    {
        std::cout << "Basic Command Line Parameter App" << std::endl
            << desc << std::endl;
        return 1;
    }

    std::cout << "var: " <<  add << std::endl;
    std::cout << "vm: " <<  vm["add"].as<int>() << std::endl;
    po::notify(vm);

    return 1;
}

Compiling and running:
$ g++ program_options.cpp -lboost_program_options
$ ./a.out --add 4
var: 5
vm: 4

Why the value of the variable "add" is not receiving 4?

Thanks for any help.