Tipos de propriedade (C++)
O sistema do projeto diferencia propriedades em dois tipos: propriedades de simples e agregados.Cada tipo de propriedade é avaliado de forma diferente para herança de propriedade.
Propriedades simples
Propriedades simples são todas as propriedades não-seqüenciais, como, por exemplo, inteiros, booleanos e propriedades de enum e conter apenas um único valor.Se forem definidos no nível local (essa configuração de arquivo, essa configuração ou a folha de propriedades), o valor herdado será ignorado.Um exemplo de tal uma propriedade é o WarnAsError, que define a opção /WX para CL.EXE.
Propriedades agregadas
Propriedades agregadas sempre são propriedades de seqüência de caracteres.O valor de uma propriedade agregada, definido em qualquer nível, é concatenado com o valor de seu pai.Um exemplo de uma propriedade agregada é o AdditionalIncludeDirectories que define o parâmetro /i para CL.EXE.Propriedades do caminho são bons exemplos das propriedades agregadas porque eles compõem uma lista de vários valores, em vez de ser um único valor.
Existem três macros internas especiais que controlam a avaliação da propriedade para propriedades agregadas:
$(Inherit)
Especifica a avaliar os valores de propriedade do pai e inserir esses valores no lugar da macro.Quando $(Inherit) não for especificado em qualquer lugar, ele está implícito no final do valor, o que significa que os valores do pai será acrescentado ao valor no nível atual.$(NoInherit)
Especifica para não acrescentar os valores de propriedade do pai para a propriedade agregada.A macro $(NoInherit) substitui a macro $(Inherit).$(StopEvaluating)
Especifica para interromper a avaliação de todos os na propriedade agregada específica onde a macro é encontrada.Quaisquer valores após a macro $(StopEvaluating) são perdidas.