Required and Optional Arguments Using Boost Library Program Options

I’ve run into this issue myself. The key to a solution is that the function po::store populates the variables_map while po::notify raises any errors encountered, so vm can be used prior to any notifications being sent. So, as per Tim, set each option to required, as desired, but run po::notify(vm) after you’ve dealt with the … Read more

ACE vs Boost vs POCO [closed]

As rdbound said, Boost has a “near STL” status. So if you don’t need another library, stick to Boost. However, I use POCO because it has some advantages for my situation. The good things about POCO IMO: Better thread library, especially a Active Method implementation. I also like the fact that you can set the … Read more

Example of UUID generation using Boost in C++

A basic example: #include <boost/uuid/uuid.hpp> // uuid class #include <boost/uuid/uuid_generators.hpp> // generators #include <boost/uuid/uuid_io.hpp> // streaming operators etc. int main() { boost::uuids::uuid uuid = boost::uuids::random_generator()(); std::cout << uuid << std::endl; } Example output: 7feb24af-fc38-44de-bc38-04defc3804de

Calculate mean and standard deviation from a vector of samples in C++ using Boost

I don’t know if Boost has more specific functions, but you can do it with the standard library. Given std::vector<double> v, this is the naive way: #include <numeric> double sum = std::accumulate(v.begin(), v.end(), 0.0); double mean = sum / v.size(); double sq_sum = std::inner_product(v.begin(), v.end(), v.begin(), 0.0); double stdev = std::sqrt(sq_sum / v.size() – mean … Read more

Where is shared_ptr?

There are at least three places where you may find shared_ptr: If your C++ implementation supports C++11 (or at least the C++11 shared_ptr), then std::shared_ptr will be defined in <memory>. If your C++ implementation supports the C++ TR1 library extensions, then std::tr1::shared_ptr will likely be in <memory> (Microsoft Visual C++) or <tr1/memory> (g++’s libstdc++). Boost … Read more