```cpp
template <class F, class = std::void_t<decltype(+std::declval<F>())>>
```
?
this tries to convert closure object into function pointer, which is only allowed for non capturing lambda.
```cpp
template <class F, class = std::void_t<decltype(+std::declval<F>())>>
```
?
this tries to convert closure object into function pointer, which is only allowed for non capturing lambda.