Os diferentes dialetos do GCC podem ser ligados entre si?

Eu sei que, em princípio, isso é provavelmente um comportamento indefinido, mas no interesse de lidar com um grande projeto, aqui está minha pergunta sobre o GCC:

Suponha que eu compile uma unidade de transação comgcc -std=c++98e outro com-std=c++11, usando exatamente a mesma instalação do compilador. Existe algum tipo de garantia que eu possa ligar os dois arquivos objeto e obter um programa bem definido?

Tanto quanto eu posso dizer, os problemas potenciais só podem vir de diferentes visões dos cabeçalhos da biblioteca, devido às diferentes macros, e esses, por sua vez, na melhor das hipótesesadicionar novas funções de membro, mas nunca objetos de membros, para as classes de biblioteca padrão.

Isso de alguma forma tornaria aceitável compilar diferentes partes de um projeto maior com diferentes opções de dialeto de idioma?

Atualizar: Eu deveria adicionar uma pergunta ortogonal: o que sobre o uso de doisdiferente versões do GCC (digamos 4.3 e 4.6), mas que omesmo opção de dialeto (-std=c++98) A listagemnesta documentação do GCC parece sugerir que a biblioteca é compatível em ambas as direções entre 4.2.2 e 4.6.

questionAnswers(3)

yourAnswerToTheQuestion