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