or que o escopo do parâmetro C ++ afeta a pesquisa de funções em um espaço para nom

Isto me parece um pouco atrasado, mas funciona:

#include <iostream>

namespace nTest
{
  struct cTest {};

  void fTest(cTest& x)
  {
    std::cout << "nTest::fTest(cTest&) called" << std::endl;
  }
}

int main(void)
{
  nTest::cTest x;
  fTest(x); //Weird! fTest is resolved since its parameter belongs to nTest.
  return 0;
}

Normalmente, você precisaria de nTest :: para acessar o fTest, mas seu parâmetro, que pertence ao nTest, parece adicionar nTest à lista de possíveis escopos nos quais procurar fTest. Parece estranho para mim que o escopo do parâmetro influencia a pesquisa da funçã

Isso compila bem no GCC, mas estou me perguntando se esse uso é portátil? Qual é a definição oficial desse mecanismo de escopo?

questionAnswers(3)

yourAnswerToTheQuestion