00001 #pragma once
00002
00003 #include <memory>
00004
00005 namespace FDR
00006 {
00007 namespace Assertions
00008 {
00009 class Assertion;
00010
00015 class Counterexample
00016 {
00017 public:
00018 virtual ~Counterexample();
00019
00020 Counterexample(const Counterexample&) = delete;
00021 Counterexample& operator=(const Counterexample&) = delete;
00022
00023 protected:
00024 Counterexample();
00025
00026 private:
00027 struct Data;
00028 std::unique_ptr<Data> data;
00029 friend class DebugContext;
00030 friend struct CounterexampleFactory;
00031 };
00032
00033 }
00034 }