Por ejemplo, digamos que tenemos esta clase que se quiere hacer la prueba:¿Cómo pasar contenedores STL como argumentos a BOOST_CHECK_EQUAL?
struct TestMe {
vector<int> getSomething();
}
Y la función de prueba está hecha de:
...
vector<int> Expected;
TestMe TM;
...
Result = TM.getSomething();
BOOST_CHECK_EQUAL(Result, Expected);
...
STL vector proporciona un operador == libre, pero lo hace no proporciona un operador < <, por lo que este código no se compila. ¿Cómo puedo hacer que esto funcione? ¿Puedo definir mi propio operador < <? ¿Cómo se vería su implementación? crédito adicional a la solución más genérica :)
No existe un 'operador <<', ¿quiere decir operador '' o 'operador <<'? – bdonlan
Supongo que 'get' se supone que es' getSomething'. ¿Qué tiene que ver 'operator <<' con algo? 'BOOST_CHECK_EQUAL' utiliza el operador' == '. – Potatoswatter
@Potato: Sí, pero si la verificación falla, intenta imprimir los dos valores usando 'operator <<'. Por lo tanto, 'BOOST_CHECK_EQUAL' requiere tanto' operator == 'como' operator << '. – Philipp