オブジェクトに「配置」機能を実装しようとしています。以下のような構成になっています。size_t とテンプレート タイプをペアにするテンプレート オブジェクトがあります。これをベクターなどの std ライブラリ コンテナーに配置できるようにしたいと考えています。std::pair
私のクラスB
はデータに関する他の機能を提供するため、私は a を使用していません。
メインのように emplace を呼び出すことができるように、コードをどのように変更する必要がありますか?
#include <iostream>
#include <vector>
using namespace std;
class C {
public:
C(const string& _s) : s(_s) {}
C(string&& _s) : s(_s) {}
private:
string s;
};
template<typename A>
class B {
public:
B(size_t _i, const A& _a) : i(_i), a(_a) {}
B(size_t _i, A&& _a) : i(_i), a(_a) {}
private:
size_t i;
A a;
};
int main() {
vector<B<C>> v;
v.emplace_back(5, "Hello");
}