@@ -45,6 +45,7 @@ namespace PureScript {
46using cstring = const char *;
46using cstring = const char *;
47using std::nullptr_t;
47using std::nullptr_t;
48+using std::runtime_error;
49namespace Private {
50namespace Private {
50 struct symbol_generator_anchor_t {};
51 struct symbol_generator_anchor_t {};
@@ -68,12 +69,6 @@ using symbol_t = const Private::symbol_generator_anchor_t *;
69#define symbol(S) (&Private::symbol_generator<::PureScript::Private::Symbol::S_ ## S>::anchor)
70#define symbol(S) (&Private::symbol_generator<::PureScript::Private::Symbol::S_ ## S>::anchor)
71−// Workaround for missing C++11 version in gcc
72−class runtime_error : public std::runtime_error {
74− runtime_error(const char message[]) : std::runtime_error(std::string(message)) {}
77constexpr bool undefined = false;
72constexpr bool undefined = false;
79// Not a real limit, just used for simpler accessors
74// Not a real limit, just used for simpler accessors
@@ -128,7 +123,7 @@ class any {
128 class closure {
123 class closure {
130 virtual auto operator()(const any&) const -> any = 0;
125 virtual auto operator()(const any&) const -> any = 0;
131− virtual ~closure() {}
126+ virtual ~closure();
134 template <typename T>
129 template <typename T>
@@ -144,7 +139,7 @@ class any {
144 class eff_closure {
139 class eff_closure {
146 virtual auto operator()() const -> any = 0;
141 virtual auto operator()() const -> any = 0;
147− virtual ~eff_closure() {}
142+ virtual ~eff_closure();
150 template <typename T>
145 template <typename T>