// { dg-do compile { target c++17 } }
namespace std
{
struct stop_token { };
template<typename Callback>
struct stop_callback
{
template<typename C>
stop_callback(stop_token, C&&) { }
};
template<typename _Callback>
stop_callback(stop_token, _Callback) -> stop_callback<_Callback>;
}
int main()
{
std::stop_token tok;
std::function<void()> f([](){}); // { dg-error "not a member|not declared" }
std::stop_callback cb(tok, f);
}