pointers_to_members
Конкретные C++
Определяет, находится ли указатель к члену класса может быть объявлен прежде чем соответствующий определение класса и используется для наблюдения за размер указателя и код, необходимый, что интерпретировал указатель.
#pragma pointers_to_members( pointer-declaration, [most-general-representation] )
Заметки
Можно задать a pointers_to_members директива pragma в вашем файле источника в качестве альтернативы использованию /vmx параметры компилятора или ключевые слова наследования.
объявление указателя аргумент определяет объявляли ли указателя на член до или после определения присоединенной функции.объявление указателя аргумент один из следующих символов: 2
Аргумент |
Комментарии |
---|---|
full_generality |
Создает безопасный, иногда nonoptimal код.Использовании full_generality если любой из указателя на член объявлен перед соответствующим определением класса.Этот аргумент всегда использует указанное представление указателя most-general-representation аргумент.Эквивалент /vmg. |
best_case |
Создает безопасный, оптимальный код с помощью представления лучш-обращения для всех указателей на члены.Requires, задав класс перед объявлением указателя на член класса.Значение по умолчанию best_case. |
most-general-representation аргумент определяет наименьшее представление указателя, компилятор может безопасно использовать для ссылки на любой указателя на член класса в переводе.Аргумент может быть одним из следующих:
Аргумент |
Комментарии |
---|---|
single_inheritance |
Наиболее общее представление единый-наследование, указателем на функцию-член.Вызывает ошибку, если модель наследования определения класса, для которого объявлен указатель на член всегда или несколько предложений или виртуальный. |
multiple_inheritance |
Наиболее общее представление множественн-наследование, указателем на функцию-член.Вызывает ошибку, если модель наследования определения класса, для которого объявлен указатель на член фактически. |
virtual_inheritance |
Наиболее общее представление виртуальный-наследование, указателем на функцию-член.Никогда не вызывает ошибку.Это значение по умолчанию, если аргумент pointers_to_members #pragma (full_generality) используется. |
Внимание |
---|
Мы советуем необходимо поместить pointers_to_members директива pragma только в файле исходного кода, который требуется повлиять на, и только после любых #include директивы.Такой подход снижает риск, что директива pragma влияет на другие файлы, что случайным образом указать несколько определений для одних и тех же переменных, функции или имени класса. |
Пример
// Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )