| line | true | false | branch | 
 
| 10 | 4 | 0 | optional(const T& val) : nullable_val(new (storage) T(val)) {} | 
 
|  | 4 | 0 | optional(const T& val) : nullable_val(new (storage) T(val)) {} | 
 
| 15 | 0 | 0 | if (&oth != this) { | 
 
| 17 | 0 | 0 | if (oth) | 
 
| 18 | 0 | 0 | nullable_val = new (storage) T(*oth); | 
 
|  | 0 | 0 | nullable_val = new (storage) T(*oth); | 
 
| 25 | 4 | 0 | nullable_val = new (storage) T(val); | 
 
|  | 4 | 0 | nullable_val = new (storage) T(val); | 
 
| 30 | 0 | 0 | if (nullable_val) | 
 
| 62 | 1 | 90 | return (lhs && rhs) ? (*lhs == *rhs) : (lhs || rhs ? false : true); | 
 
|  | 1 | 0 | return (lhs && rhs) ? (*lhs == *rhs) : (lhs || rhs ? false : true); | 
 
|  | 90 | 0 | return (lhs && rhs) ? (*lhs == *rhs) : (lhs || rhs ? false : true); | 
 
|  | 90 | 0 | return (lhs && rhs) ? (*lhs == *rhs) : (lhs || rhs ? false : true); |