Do not declare them in the header, put them in an anonymous namespace in the implementation file.
Example Header:
namespace NQueens
{
int CalcHeuristic(char** state, int size);
}
Implementation Example:
namespace
{
static int heur = 0;
void CalcHorzH(char ** state, int &heuristic, int size);
void CalcColH(char ** state, int &heuristic, int size);
void CalcDiagH(char ** state, int &heuristic, int size);
int calcCollisions(int queensPerRow, int size);
}
namespace NQueens
{
int CalcHeuristic(char** state, int size)
{
}
}
namespace
{
void CalcHorzH(char ** state, int &heuristic, int size) {}
void CalcColH(char ** state, int &heuristic, int size) {}
void CalcDiagH(char ** state, int &heuristic, int size) {}
int calcCollisions(int queensPerRow, int size) { return 0; }
}