У меня есть следующая концепция:
template
concept CanSend = requires(T obj)
{
{obj.send(std::declval())} -> std::same_as;
};
template
concept HandlerConcept = (CanSend && ...);
Я хотел бы переписать это в эквивалентную концепцию C, чтобы clangd мог определить, что C имеет метод отправки . Прямо сейчас, если я напишу:
template
void foo(HandlerT obj)
{
obj.send(5);
}
Моя система автозаполнения не может определить, что obj имеет этот метод отправки. Для сравнения, clangd может выяснить это в следующем фрагменте кода, что obj имеет метод send()...
template
void foo(T obj)
{
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... tocomplete