| 260 | } |
| 261 | |
| 262 | bool Subexpression::ExtractTo( |
| 263 | std::vector<std::unique_ptr<const ExpressionStep>>& out) { |
| 264 | if (!IsFlattened()) { |
| 265 | return false; |
| 266 | } |
| 267 | |
| 268 | out.reserve(out.size() + flattened_elements().size()); |
| 269 | absl::c_move(flattened_elements(), std::back_inserter(out)); |
| 270 | program_.emplace<std::vector<Element>>(); |
| 271 | |
| 272 | return true; |
| 273 | } |
| 274 | |
| 275 | std::vector<std::unique_ptr<const ExpressionStep>> |
| 276 | ProgramBuilder::FlattenSubexpression(Subexpression* expr) { |