Question 1. std::vector<Roles> vr; the constructor for Roles: enum Role { .....}; explicit Roles (const std::string& usr, const Role& r); How would I use boost::assign::list_of to assign a vector of Roles instead of doing regular vector push_back. Question 2. Related. I have a Hash map i.e. boost::unordered_map<std::string, compositionType> and i want to use boost::map_list_of how would i do that. Question 3. trying to use operator += in boost::assignment i get error specifying unknown types. typedef boost::function<std::vector<int>(std::vector<int>)> sortfunc; std::vector<sortfunc> function_list; // quicksort random function_list += (&quicksort<QSTYPE(RANDOM), int, std::vector>) // quicksort median (&quicksort<QSTYPE(MEDIAN), int, std::vector>) // error here. // quicksort mediantriple (&quicksort<QSTYPE(MEDIANTRIPLE), int, std::vector>) // merge sort (&mergesort<int, std::vector>) // heap sort (&heapsort<int, std::vector>) // selection sort (&selection_sort<int, std::vector>) // standard sort (&standard_sort<int, std::vector>); Thanks for any help in advanced.