@@ -56,9 +56,11 @@ class PHPCPP_EXPORT Value : private HashParent
5656 Value (int32_t value);
5757 Value (int64_t value);
5858 Value (bool value);
59+ Value (const void *value) = delete ;
5960 Value (char value);
6061 Value (const std::string &value);
6162 Value (const char *value, int size = -1 );
63+ Value (struct _zend_string *value);
6264 Value (double value);
6365 Value (const IniValue &value);
6466
@@ -174,6 +176,7 @@ class PHPCPP_EXPORT Value : private HashParent
174176 Value &operator =(int32_t value);
175177 Value &operator =(int64_t value);
176178 Value &operator =(bool value);
179+ Value &operator =(const void *value) = delete ;
177180 Value &operator =(char value);
178181 Value &operator =(const std::string &value);
179182 Value &operator =(const char *value);
@@ -191,6 +194,7 @@ class PHPCPP_EXPORT Value : private HashParent
191194 Value &operator +=(int32_t value);
192195 Value &operator +=(int64_t value);
193196 Value &operator +=(bool value);
197+ Value &operator +=(const void *value) = delete ;
194198 Value &operator +=(char value);
195199 Value &operator +=(const std::string &value);
196200 Value &operator +=(const char *value);
@@ -206,6 +210,7 @@ class PHPCPP_EXPORT Value : private HashParent
206210 Value &operator -=(int32_t value);
207211 Value &operator -=(int64_t value);
208212 Value &operator -=(bool value);
213+ Value &operator -=(const void *value) = delete ;
209214 Value &operator -=(char value);
210215 Value &operator -=(const std::string &value);
211216 Value &operator -=(const char *value);
@@ -221,6 +226,7 @@ class PHPCPP_EXPORT Value : private HashParent
221226 Value &operator *=(int32_t value);
222227 Value &operator *=(int64_t value);
223228 Value &operator *=(bool value);
229+ Value &operator *=(const void *value) = delete ;
224230 Value &operator *=(char value);
225231 Value &operator *=(const std::string &value);
226232 Value &operator *=(const char *value);
@@ -236,6 +242,7 @@ class PHPCPP_EXPORT Value : private HashParent
236242 Value &operator /=(int32_t value);
237243 Value &operator /=(int64_t value);
238244 Value &operator /=(bool value);
245+ Value &operator /=(const void *value) = delete ;
239246 Value &operator /=(char value);
240247 Value &operator /=(const std::string &value);
241248 Value &operator /=(const char *value);
@@ -251,6 +258,7 @@ class PHPCPP_EXPORT Value : private HashParent
251258 Value &operator %=(int32_t value);
252259 Value &operator %=(int64_t value);
253260 Value &operator %=(bool value);
261+ Value &operator %=(const void *value) = delete ;
254262 Value &operator %=(char value);
255263 Value &operator %=(const std::string &value);
256264 Value &operator %=(const char *value);
@@ -266,6 +274,7 @@ class PHPCPP_EXPORT Value : private HashParent
266274 Value operator +(int32_t value);
267275 Value operator +(int64_t value);
268276 Value operator +(bool value);
277+ Value operator +(const void *value) = delete ;
269278 Value operator +(char value);
270279 Value operator +(const std::string &value);
271280 Value operator +(const char *value);
@@ -281,6 +290,7 @@ class PHPCPP_EXPORT Value : private HashParent
281290 Value operator -(int32_t value);
282291 Value operator -(int64_t value);
283292 Value operator -(bool value);
293+ Value operator -(const void *value) = delete ;
284294 Value operator -(char value);
285295 Value operator -(const std::string &value);
286296 Value operator -(const char *value);
@@ -296,6 +306,7 @@ class PHPCPP_EXPORT Value : private HashParent
296306 Value operator *(int32_t value);
297307 Value operator *(int64_t value);
298308 Value operator *(bool value);
309+ Value operator *(const void *value) = delete ;
299310 Value operator *(char value);
300311 Value operator *(const std::string &value);
301312 Value operator *(const char *value);
@@ -311,6 +322,7 @@ class PHPCPP_EXPORT Value : private HashParent
311322 Value operator /(int32_t value);
312323 Value operator /(int64_t value);
313324 Value operator /(bool value);
325+ Value operator /(const void *value) = delete ;
314326 Value operator /(char value);
315327 Value operator /(const std::string &value);
316328 Value operator /(const char *value);
@@ -326,13 +338,18 @@ class PHPCPP_EXPORT Value : private HashParent
326338 Value operator %(int32_t value);
327339 Value operator %(int64_t value);
328340 Value operator %(bool value);
341+ Value operator %(const void *value) = delete ;
329342 Value operator %(char value);
330343 Value operator %(const std::string &value);
331344 Value operator %(const char *value);
332345 Value operator %(double value);
333346
334347 /* *
335348 * Comparison operators for hardcoded strings
349+ *
350+ * Note that this works only for string values,
351+ * other values segfaults!
352+ *
336353 * @param value
337354 */
338355 bool operator ==(const char *value) const { return strcmp (value) == 0 ; }
0 commit comments