我知道在概念上,有限制的函数(无论实际上约束有多松)始终比无限制的函数更匹配。但是否有语法来选择性地调用下面示例代码中的无限制版本的 f()
?如果没有,编译器是否应该警告不可调用的函数?
#include <iostream>
template <typename T> requires(true)
void f() { std::cout << "Constrained\n"; }
template <typename T>
void f() { std::cout << "NOT Constrained\n"; }
int main() {
f<int>();
}