| 4384 | // error-ness is returned in the profile result itself. |
| 4385 | template <typename... Args> |
| 4386 | struct ThenBlasWithProfileImpl { |
| 4387 | Stream &operator()(Stream *stream, |
| 4388 | bool (blas::BlasSupport::*blas_func)( |
| 4389 | Stream *, Args..., blas::ProfileResult *), |
| 4390 | Args... args, blas::ProfileResult *profile_result) { |
| 4391 | ThenBlasImpl<Args..., blas::ProfileResult *> Runner; |
| 4392 | bool record_error = profile_result == nullptr; |
| 4393 | return Runner.Run(stream, blas_func, record_error, args..., profile_result); |
| 4394 | } |
| 4395 | }; |
| 4396 | } // anonymous namespace |
| 4397 | |
| 4398 | Stream &Stream::ThenBlasGemvWithProfiling( |