Ticket #2407 (closed Bugs: fixed)
[Proto] Error while using operator<< and iostream
|Reported by:||Joel Falcou <joel.falcou@…>||Owned by:||eric_niebler|
|Version:||Boost Development Trunk||Severity:||Problem|
Bug found in the "[Boost-users] [Proto] Strange behavior with semantic action and custom tag function" threads.
Quoting Eric : "The operator<< in the output expression can potentially match either the ostream inserter we've defined above or Proto's operator<<. Proto's operator overload *should* be disabled with SFINAE because the resulting expression type doesn't match the domain's grammar. But the failure happens before we get that far. Before checking the return type against the grammar, Proto first calculates the return type, which first involves Protofying std::cout, resulting in e<proto::terminal<std::ostream &>::type>. This is where the failure occurs because this simple terminal expression *also* doesn't match the grammar. That triggers the static assertion failure in e<>."
- Owner set to eric_niebler
- Status changed from new to assigned
- Status changed from assigned to closed
- Resolution set to fixed