Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
[Ответ на мой собственный вопрос]
лучшие введения, которые я нашел до сих пор, являются главой 10, "Статическое Метапрограммирование в C++" от Порождающее Программирование, Методы, Инструменты и Приложения Krzysztof Czarnecki и Ulrich W. Eisenecker, ISBN-13: 9780201309775; и глава 17, "Метапрограммы" Шаблоны C++: полное руководство David Vandevoorder и Nicolai M. Josuttis, ISBN-13: 9780201734843.
у Todd Veldhuizen есть превосходное учебное руководство здесь .
А хороший ресурс для программирования на C++ в целом современный Дизайн C++ Andrei Alexandrescu, ISBN-13: 9780201704310. Эта книга смешивает немного метапрограммирования с другими шаблонными методами. Для метапрограммирования в частности, посмотрите разделы 2.1 "Утверждения Времени компиляции", 2.4 "Отображающихся Интегральных Константы к Типам", 2.6 "Выбора типа", 2,7 "Обратимости обнаружения и Наследование во время компиляции", 2.9" NullType
и EmptyType
" и 2.10 "Черты Типа".
лучший промежуточный/усовершенствованный ресурс, который я нашел, Шаблонное Метапрограммирование C++ David Abrahams и Aleksey Gurtovoy, ISBN-13: 9780321227256
, Если Вы предпочли бы всего одну книгу, доберитесь Шаблоны C++: полное руководство , так как это - также категорическая ссылка для шаблонов в целом.
Andrei Alexandrescu современные обложки книги Дизайна C++ многое из этого и других приемов для быстрого и эффективного современного C++ кодирует, и основание для библиотека Loki .
Также стоящий упоминания библиотеки Boost , которые в большой степени используют эти методы и обычно являются очень высокого качества для приобретения знаний из (хотя некоторые являются довольно плотными).
современный Дизайн C++, блестящая платформа книги и шаблона разработки Alexandrescu. Word предупреждения, после чтения этой книги я прекратил делать C++ и думал, "Какого черта, я могу просто выбрать лучший язык и получить его бесплатно".
Две хороших книги, которые приходят на ум:
Это - вполне всестороннее поле, таким образом, хорошая книга как один из них определенно рекомендуется по веб-сайтам. Некоторые более усовершенствованные методы будут иметь Вас изучающий код в течение некоторого времени, чтобы выяснить, как они работают!
современный C++ является одним из лучших введений, которые я считал. Это покрывает фактические полезные примеры шаблонного метапрограммирования. Также смотрите на сопутствующую библиотеку Loki.
Не будет большого списка книг, поскольку список людей с большим опытом ограничен. Шаблонное метапрограммирование, запущенное для реального вокруг первого Цеха Шаблонного программирования C++ в 2000 и многих авторов, назвало до сих пор посещенным. (IIRC, Andrei не сделал.) Эти пионеры значительно влияли на поле, и в основном что должно быть записано, теперь записан. Лично, я был бы совет Vandevoorde & Josuttis. Alexandrescu является жесткой книгой, если Вы плохо знакомы с полем.
Исходные бумаги Veldhuizen были хороши. Если Вы для целой книги, то существует книга Vandevoorde "Шаблонное полное руководство C++". И когда Вы готовы к курсу ведущего устройства, попробуйте современный Дизайн C++ Alexandrescu.
google Alexandrescu, современный дизайн C++: универсальные шаблоны программирования и шаблоны разработки применяются