関数がその状態を変更するため、 a をあるstd::future
ものとして宣言することは安全 (スレッドセーフ) ですか。どちらが安全に作られているかのようなものだと思います。mutable
get()
std::mutex
mutable
template <typename T>
struct S {
void query() {
m_fut = doAsyncQuery();
}
template <typename L>
void get(L lambda) const {
lambda(m_f.get());
}
mutable std::future<T> m_f;
};