Есть классы, для которыx существуют входные и выходные вектора.
При изменении кода хотелось бы сразу проверять работоспособность кода.
В голову приходит лишь
#include "stdafx.h"
#include <string>
#include <assert.h>
class Some {
private:
std::string m_string;
public :
explicit Some (const std::string& str) : m_string(str) {}
~Some() {}
const std::string& string(void) const { return m_string; }
};
#ifdef _DEBUG
namespace
{
struct SomeTest
{
explicit SomeTest(const std::string& str)
{
Some some(str);
assert(some.string() == "ABC");
}
};
static SomeTest test("ABCD");
}
#endif
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
Но это пример времени выполнения, а хотелось бы как прикрутить static_assert.
Или есть какой другой механизм написания тестов времени компиляции ?
P.S. И хотелось бы использовать более сложные проверки чем assert. Например проверить некоторые поля или выполнение некоторого метода.