次のようにタプルを初期化する必要があるという要件があります。クラス A のオブジェクトを含むタプルを作成するにはどうすればよいですか?
#include <iostream>
#include <tuple>
using namespace std;
class A{
int a;
public:
A(const A&)=delete;
A(int a): a(a){}
};
std::tuple<A>& createTuple(A &&a){
return std::make_tuple<A>(std::forward<A>(a));
}
int main(){
std::cout << std::get<0>(createTuple(std::forward<A>(A(1))));
}
クラス A を変更することはできません。