git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
C++: add cast to const char* (convenience)
43aeba7Andy Arvanitis
pcc/include/purescript.cc+6
@@ -117,6 +117,12 @@ any::~any() {
117 }
117 }
118 template auto any::cast<string>() const -> const string&;
118 template auto any::cast<string>() const -> const string&;
119
119
120+ template <typename T>
121+ auto any::cast() const -> typename std::enable_if<std::is_same<T, const char*>::value, const T>::type {
122+ RETURN_VALUE(Type::String, s->c_str(),)
123+ }
124+ template auto any::cast<const char*>() const -> const char* const;
125+
120 template <typename T>
126 template <typename T>
121 auto any::cast() const -> typename std::enable_if<std::is_same<T, map>::value, const T&>::type {
127 auto any::cast() const -> typename std::enable_if<std::is_same<T, map>::value, const T&>::type {
122 RETURN_VALUE(Type::Map, m, *)
128 RETURN_VALUE(Type::Map, m, *)
pcc/include/purescript.hh+3
@@ -214,6 +214,9 @@ class any {
214 template <typename T>
214 template <typename T>
215 auto cast() const -> typename std::enable_if<std::is_same<T, string>::value, const T&>::type;
215 auto cast() const -> typename std::enable_if<std::is_same<T, string>::value, const T&>::type;
216
216
217+ template <typename T>
218+ auto cast() const -> typename std::enable_if<std::is_same<T, const char*>::value, const T>::type;
219+
217 template <typename T>
220 template <typename T>
218 auto cast() const -> typename std::enable_if<std::is_same<T, map>::value, const T&>::type;
221 auto cast() const -> typename std::enable_if<std::is_same<T, map>::value, const T&>::type;
219
222