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


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 )

См. также

Ссылки

Директивы pragma и ключевое слово __Pragma