Looks like I could have wrote:

  void add( std::shared<Bar> bar )
        {
            m_work_queue.push( [this, bar]{
                m_bars.emplace_back( bar );
                m_content->bar_id_list.emplace_back( bar->id() ); // simplified
            });
        }

       void rename( std::string new_name )
       {
           m_work_queue.push( [this, new_name]{
               m_info->name = new_name; // simplified
           });
       }

Which is even better.

Now I have a question:
Should the current (1.54.0 beta) version of synchronized_value work with multiple-readers-single-writer mutexes?

Joel Lamotte