void timeTheFunc(const std::string& funcName, std::function<void(void)>& func)
{
    using std::chrono::high_resolution_clock;
    using std::chrono::duration_cast;
    using std::chrono::duration;
    using std::chrono::milliseconds;
    auto t1 = high_resolution_clock::now();
// will this function complete execution here before returning ? 
        func();
    auto t2 = high_resolution_clock::now();

    /* Getting number of milliseconds as a double. */
    duration<double, std::milli> ms_double = t2 - t1;

    std::cout << funcName << " took :" << ms_double.count() << "ms\n";
}

/