Note: The type after -> is weird, because VS2015 cannot parse the expression used in the typedef inside, when it is in return type. Yeah.
| 4081 | // the expression used in the typedef inside, when it is in |
| 4082 | // return type. Yeah. |
| 4083 | auto generate( StringRef generatorName, SourceLineInfo const& lineInfo, L const& generatorExpression ) -> decltype(std::declval<decltype(generatorExpression())>().get()) { |
| 4084 | using UnderlyingType = typename decltype(generatorExpression())::type; |
| 4085 | |
| 4086 | IGeneratorTracker& tracker = acquireGeneratorTracker( generatorName, lineInfo ); |
| 4087 | if (!tracker.hasGenerator()) { |
| 4088 | tracker.setGenerator(pf::make_unique<Generators<UnderlyingType>>(generatorExpression())); |
| 4089 | } |
| 4090 | |
| 4091 | auto const& generator = static_cast<IGenerator<UnderlyingType> const&>( *tracker.getGenerator() ); |
| 4092 | return generator.get(); |
| 4093 | } |
| 4094 | |
| 4095 | } // namespace Generators |
| 4096 | } // namespace Catch |
nothing calls this directly
no test coverage detected