I want my templated function to accept a parameter pack composed of either predicates with specific parameters or empty curly braces(for backward compatibility reasons). This parameter pack needs to match to a concept.
How do I change my concept definition to allow that?
The current version is:
template<typename V>
concept myconcept = std::predicate<std::remove_cvref_t<V>, int> || "what do I put here?"
When I pass empty curly braces to the function, compiler says:
"candidate template ignored: substitution failure: deduced incomplete pack <[my predicate 1], (no value), [my predicate 2]>..."
Where (no value) is empty curly braces.