# Pass vector of QNs to create Index

I'd like to create a vector of QNs in a for loop that are then used to create one Index. The relevant code in my .h defining my class ExcitonSite is

ExcitonSite(Args const& args = Args::global())
{
int dim = args.getInt("on_site_dim", 5);
auto ts = TagSet("Site,S="+str(dim));
auto v = stdx::reserve_vector<Index>(2 * dim + 1);
for (int j = -dim; j <= dim; ++j)
{
auto q = QN({"Sz",j});
v.emplace_back(q, 1);
}
s = Index(std::move(v),Out,ts);
}


This however is throwing an error "error: no matching function for call to..." in the last line. Thoughts?

+1 vote
edited by

For those who are interested, this is the solution:

   ExcitonSite(Args const& args = Args::global())
{
dim = args.getInt("on_site_dim", 5);
auto ts = TagSet("Site,Exciton");
int n = args.getInt("SiteNumber");