git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
C++: minor cleanup involving functor consts
6ca0052Andy Arvanitis
pcc/include/purescript.hh+6−6
@@ -93,30 +93,30 @@ class any {
93
93
94 class closure {
94 class closure {
95 public:
95 public:
96− virtual any operator()(const any&) = 0;
96+ virtual auto operator()(const any&) const -> any = 0;
97 };
97 };
98
98
99 template <typename T>
99 template <typename T>
100 class _closure : public closure {
100 class _closure : public closure {
101− T lambda;
101+ const T lambda;
102 public:
102 public:
103 _closure(const T& l) noexcept : lambda(l) {}
103 _closure(const T& l) noexcept : lambda(l) {}
104− any operator()(const any& arg) {
104+ auto operator()(const any& arg) const -> any {
105 return lambda(arg);
105 return lambda(arg);
106 }
106 }
107 };
107 };
108
108
109 class eff_fn {
109 class eff_fn {
110 public:
110 public:
111− virtual any operator()() = 0;
111+ virtual auto operator()() const -> any = 0;
112 };
112 };
113
113
114 template <typename T>
114 template <typename T>
115 class _eff_fn : public eff_fn {
115 class _eff_fn : public eff_fn {
116− T lambda;
116+ const T lambda;
117 public:
117 public:
118 _eff_fn(const T& l) noexcept : lambda(l) {}
118 _eff_fn(const T& l) noexcept : lambda(l) {}
119− any operator()() {
119+ auto operator()() const -> any {
120 return lambda();
120 return lambda();
121 }
121 }
122 };
122 };