É seguro vincular objetos C ++ 17, C ++ 14 e C ++ 11
Suponha que eu tenha três objetos compilados, todos produzidos pelomesmo compilador / versão:
A foi compilado com o padrão C ++ 11B foi compilado com o padrão C ++ 14C foi compilado com o padrão C ++ 17Para simplificar, vamos assumir que todos os cabeçalhos foram escritos em C ++ 11,usando apenas construções cuja semântica não mudou entre as três versões padrãoe, portanto, quaisquer interdependências foram expressas corretamente com a inclusão do cabeçalho e o compilador não se opôs.
Quais combinações desses objetos são e não é seguro vincular um único binário? Por quê?
EDIT: respostas que abrangem os principais compiladores (por exemplo, gcc, clang, vs ++) são bem-vindas