Поделиться через


Типы свойств (C++)

В системе проектов свойства подразделяются на два типа: простые и агрегатные. Эти типы свойств оцениваются по-разному при наследовании свойств.

Простые свойства

Простые свойства не являются строковыми, то есть они могут представлять собой целые числа, логические значения и перечисления, и содержат только одно значение. Если они определены на локальном уровне (в данном файле конфигурации, данной конфигурации или на данной странице свойств), унаследованное значение игнорируется. Примером такого свойства является WarnAsError, в котором задается ключ /WX для CL.EXE.

Агрегатные свойства

Агрегатные свойства всегда являются строковыми. Значение агрегатного свойства, определенное на любом уровне, сцепляется со значением его родительского объекта. Примером агрегатного свойства является AdditionalIncludeDirectories, в котором задается ключ /I для CL.EXE. Хорошим примером агрегатных свойств являются свойства путей, поскольку они включают в себя не одно значение, а список нескольких значений.

Существуют три специальных встроенных макроса, управляющих оценкой для агрегатных свойств.

  • $(Inherit)
    Задает оценку значений свойств родительского объекта и вставляет эти значения на место макроса. Если макрос $(Inherit) нигде не указан, он подразумевается в конце значения, то есть значения родительского объекта будут добавлены к значению на текущем уровне.

  • $(NoInherit)
    Предписывает не применять значения свойств родительского объекта к агрегатному свойству. Макрос $(NoInherit) переопределяет макрос $(Inherit).

  • $(StopEvaluating)
    Предписывает прекратить все оценки для конкретного агрегатного свойства, где обнаружен макрос. Все значения после макроса $(StopEvaluating) теряются.

См. также

Основные понятия

Оценка наследуемых свойств

Наследование свойств