Тесты времени компиляции
От: xbarmaglot  
Дата: 31.12.12 14:41
Оценка:
Есть классы, для которы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. Например проверить некоторые поля или выполнение некоторого метода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.