Por que o VS2010 fornece erros de sintaxe quando a sintaxe está correta?

Estou tendo um problema com o VS2010 (e o VS2008), fornecendo uma ótima lista de erros de sintaxe. No entanto, a sintaxe está realmente correta. Aqui está um pequeno exemplo;

Tenho o seguinte bloco de código dentro de um arquivo .h

// Prototype Declarations
LIST*   createList     (int (*compare) (void*, void*));
LIST*   destroyList    (LIST* plist);
int     addNode      (LIST* pList, void* dataInPtr);
bool    removeNode      (LIST* pList, void* keyPtr, void** dataOutPtr);
bool    searchList      (LIST* pList, void* pArgu, void** pDataOut);
bool    retrieveNode    (LIST* pList, void* pArgu, void** dataOutPtr);
bool    traverse        (LIST* pList, int fromWhere, void** dataOutPtr);
int     listCount    (LIST* pList);
bool    isListEmpty     (LIST* pList);
bool    isListFull      (LIST* pList);

LIST é uma estrutura digitada, FYI. Todas essas declarações de função parecem estar com sintaxe correta. No entanto, ao tentar compilar, recebo os seguintes erros de sintaxe começando na primeira função bool, descendo a list

Erro 2 do erro C2059: erro de sintaxe: ';'

Não estou conseguindo ver onde está o problema. Novamente, este é apenas um pequeno exemplo. Também recebo erros de sintaxe, como os seguintes

bool found;

Erro Err 29 C2065: 'bool': identificador não declarado

Estou realmente perdido neste. O código postado aqui não é meu, é de um livro de estruturas de dados, mas novamente parece correto. Qualquer ajuda seria apreciada. Obrigado

questionAnswers(2)

yourAnswerToTheQuestion