Согласно Wikipedia:
Объект является первоклассным, если он:
- может храниться в переменных и структурах данных
- может быть передан как параметр подпрограмме
- может быть возвращен в результате подпрограммы
- может быть сконструирован во время выполнения
- имеет внутреннюю идентичность (независимо от любого имени)
Кто-то однажды сказал мне, что raw указатели не являются объектами первого класса, в то время как интеллектуальные указатели, такие как std:: auto_ptr. Но для меня необработанный указатель (на объект или на функцию) в С++ мне кажется удовлетворительным, чтобы условия, указанные выше, квалифицировались как объект первого класса. Я что-то упускаю?