#ifndef _ADV_CONTEXT_HPP
#define _ADV_CONTEXT_HPP
#include "Double.hpp"
namespace adv
{
class Context
{
public:
~Context();
Context();
Context(const Context&) = delete;
Context(Context&&);
Context& operator=(const Context&) = delete;
Context& operator=(Context&&);
Double new_independent();
void set_dependent(const Double& var);
private:
struct Impl;
Impl* m_impl;
friend class Tape;
void* get_impl();
void* move_impl();
};
}
#endif