Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Специфика C++
Указывает, можно ли объявлять указатель на член класса до определения связанного класса. Используется для управления размером указателя и кодом, необходимым для интерпретации указателя.
Синтаксис
#pragma pointers_to_members( best_case )
#pragma pointers_to_members( full_generality[ ],most-general-representation)
Замечания
Исходный файл можно поместить в качестве альтернативы использованию pragma/vmb/vms параметров компилятора или ключевых слов/vmv
Аргумент объявления указателя указывает, объявлен ли указатель на элемент до или после связанного определения функции. Аргумент pointer-declaration является одним из следующих двух символов:
full_generality
Создает безопасный, но не всегда оптимальный код. Используйтеfull_generality, если любой указатель на элемент объявлен до определения связанного класса. Этот аргумент всегда использует представление указателя, указанное аргументомmost-general-representation. Эквивалент/vmg.best_case
Создает оптимальный код, используя лучшее представление для всех указателей на элементы. Требуется определить класс перед объявлением указателя на член. Значение по умолчанию —best_case.
Аргумент most-general-representation указывает наименьшее представление указателя, которое компилятор должен использовать для безопасной ссылки на любой указатель на член класса в модуле перевода. Аргумент может быть одним из следующих значений:
single_inheritance
Наиболее общим представлением является однонаследование, указывающего на функцию-член. Эквивалент/vmg /vms. Вызывает ошибку, если модель наследования определения класса является несколькими или виртуальными.multiple_inheritance
Наиболее общим представлением является указатель на функцию-член с несколькими наследованиями. Эквивалент/vmg /vmm. Вызывает ошибку, если модель наследования определения класса является виртуальной.virtual_inheritance
Наиболее общим представлением является указатель на функцию-член виртуального наследования. Эквивалент/vmg /vmv. Никогда не вызывает ошибку.virtual_inheritance— это аргумент по умолчанию при#pragma pointers_to_members(full_generality)использовании.
Внимание
Мы советуем поместить pointers_to_memberspragma только в файл исходного кода, который вы хотите повлиять, и только после каких-либо #include директив. Эта практика снижает риск, который pragma повлияет на другие файлы, и вы случайно укажедите несколько определений для одной переменной, функции или имени класса.
Пример
// Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )
END C++ Specific
См. также
директивы Pragma и ключевые слова __pragma и _Pragma