Код: Выделить всё
template
concept C = requires(T t) {
{ N::foo(t) } -> std::same_as;
};
struct S {};
namespace N {
void foo(S) {}
}
static_assert(C);
концептуально (каламбур), s выполняет concept c . Но код не компилируется, потому что n :: не имеет смысла для компилятора, когда концепция определена. И, конечно же, FWD-декорация void foo (s) в пространстве имен n до того, как определение концепции не станет опцией, потому что я не могу знать тип s заранее. Что мне здесь не хватает? Я пытался определить это в n , но это не помогает.
Подробнее здесь: https://stackoverflow.com/questions/796 ... namespaces
Мобильная версия