Como faço para tornar principal um amigo da minha classe dentro de uma biblioteca?

Por favor, vejamy primeira tentativa de responder a esta. Esqueci de contar a história toda antes, numa tentativa de simplificar as coisas. Acontece que o meu exemplo funciona! Desculpe

A história toda é que essa é uma biblioteca que contém uma classe em um arquivo e a principal em outro arquivo, todos vinculados à minha biblioteca. A biblioteca está fornecendo a base para um Process Framework, e é por isso que o principal está na biblioteca e não no process

Abaixo é uma versão simplificada do que tenho.

pf.hpp

using namespace std;

namespace MyNamespace
{
  class ProcessManager
  {
  public:
    friend int main(int argc, char** argv);
  private:
    void test();
  };
};

pf.cpp

#include "pf.h"

namespace MyNamespace
{
  ProcessManager::test()
  {
    cout << "My friend has accessed my member" << endl;
  }
};

pfmain.cpp

#include "pf.hpp"

int main(int argc, char** argv)
{
   ProcessManager pm;

   pm.test();
}

Observe que isso falha na compilação da biblioteca

O que eu tentei é:

Movendo o amigo em todo o lugarFazer a referência de amigo ao escopo global de uso principal (por exemplo, :: main)Fazer declarações de amigos e principais usar o escopo global

O que estou perdendo

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion