Dobry wieczór, mam pewien problem - mam funkcję o zmiennej liczności (na razie chce zapisać stringi będące argumentami do pomocniczej tablicy w funkcji, której będę potem używał) i muszę przekazać do niej pewną ilość stringów. W takiej postaci program się nie kompiluje i wywala mi błąd - [Error] cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '...' w miejscu wywołania funkcji. Jeśli zamienię "tablica[0]" na "tablica[0].c_str()" to program się kompiluje, ale i tak nie działa poprawnie. Ponadto w wywołaniu funkcji wątpię by było używane .c_str() ( wymóg zadania, nie moje widzimisie), więc muszę się bez tego obejść i tak. Więc jaki tu jest problem i jak mogę go rozwiązać??
string sum( int iloscLiczb, ... )
{
va_list ap;
va_start ( ap, iloscLiczb );
string tablica[iloscLiczb];
for ( int i = 0; i < iloscLiczb; i++ )
{
char* s = va_arg( ap, char * );
tablica[i] = s;
}
}
int main()
{
int liczbaCyfr;
cin >> liczbaCyfr;
string tablica[liczbaCyfr];
for ( int i = 0; i < liczbaCyfr; i++ )
{
cin >> * ( tablica + i ) ;
}
//cout << sum( liczbaCyfr, tablica );
cout << sum ( liczbaCyfr, tablica[0], tablica[1]) ;
return 0;
}