Concurrent Traffic Simulator written in C++ using threads and tasks, smart pointers and condition variables (Udacity C++ Nanodegree)