関数がその状態を変更するため、 a をあるstd::futureものとして宣言することは安全 (スレッドセーフ) ですか。どちらが安全に作られているかのようなものだと思います。mutableget()std::mutexmutable
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;
};