Explicitly initialize the thread with a reference_wrapper by using std::ref:
auto thread1 = std::thread(SimpleThread, std::ref(a));
(or std::cref instead of std::ref, as appropriate). Per notes from cppreference on std:thread:
The arguments to the thread function are moved or copied by value. If a reference argument needs to be passed to the thread function, it has to be wrapped (e.g. with
std::reforstd::cref).