Per esempio, dire che abbiamo questa classe che vogliamo testare:Come passare container STL come argomenti a BOOST_CHECK_EQUAL?
struct TestMe {
vector<int> getSomething();
}
E la funzione di test è costituito da:
...
vector<int> Expected;
TestMe TM;
...
Result = TM.getSomething();
BOOST_CHECK_EQUAL(Result, Expected);
...
STL vettore fornisce un operatore == libero, ma lo fa non fornire un operatore < <, quindi questo codice non viene compilato. Come posso farlo funzionare? Posso definire il mio operatore < <? Come sarebbe la sua implementazione? di credito in più per la soluzione più generica :)
Non esiste un 'operatore <<', vuoi dire 'operatore <' o 'operatore <<'? – bdonlan
Suppongo che 'get' debba essere' getSomething'. Cosa c'entra l'operatore << con qualcosa? 'BOOST_CHECK_EQUAL' usa l'operatore' == '. – Potatoswatter
@Potato: Sì, ma se il controllo fallisce, prova a stampare i due valori usando 'operator <<'. Quindi 'BOOST_CHECK_EQUAL' richiede sia' operator ==' che 'operator <<'. – Philipp