|
193 | 193 | static auto _Get_##propname(T &self) \ |
194 | 194 | -> typename std::enable_if<sw::_IsProperty<U>::value, typename U::TValue>::type \ |
195 | 195 | { \ |
196 | | - return self.##expr.Get(); \ |
| 196 | + return (self.##expr).Get(); \ |
197 | 197 | } \ |
198 | 198 | template <typename T, typename U = decltype(expr)> \ |
199 | 199 | static auto _Get_##propname(T &self) \ |
200 | 200 | -> typename std::enable_if<!sw::_IsProperty<U>::value, U>::type \ |
201 | 201 | { \ |
202 | | - return self.##expr; \ |
| 202 | + return (self.##expr); \ |
203 | 203 | } |
204 | 204 |
|
205 | 205 | /** |
|
210 | 210 | static auto _Set_##propname(T &self, U &&value) \ |
211 | 211 | -> typename std::enable_if<sw::_IsProperty<V>::value>::type \ |
212 | 212 | { \ |
213 | | - self.##expr.Set(std::forward<U>(value)); \ |
| 213 | + (self.##expr).Set(std::forward<U>(value)); \ |
214 | 214 | } \ |
215 | 215 | template <typename T, typename U, typename V = decltype(expr)> \ |
216 | 216 | static auto _Set_##propname(T &self, U &&value) \ |
217 | 217 | -> typename std::enable_if<!sw::_IsProperty<V>::value>::type \ |
218 | 218 | { \ |
219 | | - self.##expr = std::forward<U>(value); \ |
| 219 | + (self.##expr) = std::forward<U>(value); \ |
220 | 220 | } |
221 | 221 |
|
222 | 222 | /*================================================================================*/ |
|
282 | 282 | static auto _Set_##name(T &self, U &&value) \ |
283 | 283 | -> typename std::enable_if<sw::_IsProperty<V>::value && sw::_EqOperationHelper<U, U>::value>::type \ |
284 | 284 | { \ |
285 | | - if (!(self.##expr.Get() == value)) { \ |
286 | | - self.##expr.Set(std::forward<U>(value)); \ |
| 285 | + if (!((self.##expr).Get() == value)) { \ |
| 286 | + (self.##expr).Set(std::forward<U>(value)); \ |
287 | 287 | if (self.PropertyChanged) self.PropertyChanged(self, sw::Reflection::GetFieldId(&T::##name)); \ |
288 | 288 | } \ |
289 | 289 | } \ |
290 | 290 | template <typename T, typename U, typename V = decltype(expr)> \ |
291 | 291 | static auto _Set_##name(T &self, U &&value) \ |
292 | 292 | -> typename std::enable_if<sw::_IsProperty<V>::value && !sw::_EqOperationHelper<U, U>::value>::type \ |
293 | 293 | { \ |
294 | | - self.##expr.Set(std::forward<U>(value)); \ |
| 294 | + (self.##expr).Set(std::forward<U>(value)); \ |
295 | 295 | if (self.PropertyChanged) self.PropertyChanged(self, sw::Reflection::GetFieldId(&T::##name)); \ |
296 | 296 | } \ |
297 | 297 | template <typename T, typename U, typename V = decltype(expr)> \ |
298 | 298 | static auto _Set_##name(T &self, U &&value) \ |
299 | 299 | -> typename std::enable_if<!sw::_IsProperty<V>::value && sw::_EqOperationHelper<U, U>::value>::type \ |
300 | 300 | { \ |
301 | | - if (!(self.##expr == value)) { \ |
302 | | - self.##expr = std::forward<U>(value); \ |
| 301 | + if (!((self.##expr) == value)) { \ |
| 302 | + (self.##expr) = std::forward<U>(value); \ |
303 | 303 | if (self.PropertyChanged) self.PropertyChanged(self, sw::Reflection::GetFieldId(&T::##name)); \ |
304 | 304 | } \ |
305 | 305 | } \ |
306 | 306 | template <typename T, typename U, typename V = decltype(expr)> \ |
307 | 307 | static auto _Set_##name(T &self, U &&value) \ |
308 | 308 | -> typename std::enable_if<!sw::_IsProperty<V>::value && !sw::_EqOperationHelper<U, U>::value>::type \ |
309 | 309 | { \ |
310 | | - self.##expr = std::forward<U>(value); \ |
| 310 | + (self.##expr) = std::forward<U>(value); \ |
311 | 311 | if (self.PropertyChanged) self.PropertyChanged(self, sw::Reflection::GetFieldId(&T::##name)); \ |
312 | 312 | } \ |
313 | 313 | sw::Property<_SW_EXPR_PROPERTY_VALUETYPE(name, expr)> name \ |
|
0 commit comments