Реализовать функцию печати условного ip-адреса. Функцию нужно реализовать для различных входных параметров путём использования механизма SFINAE. Всего нужно выполнить 3 обязательных и один опциональный вариант функции.
- Адрес может быть представлен в виде произвольного целочисленного типа. Представление
не зависит от знака типа. Выводить побайтово, начиная со старшего байта, с символом
.(символ точки) в качестве разделителя. - Адрес может быть представлен в виде строки. Выводится как есть.
- Адрес может быть представлен в виде контейнеров
std::list,std::vector. Выводится содержимое контейнера поэлементно и разделяется.(одним символом точка). - Опционально адрес может быть представлен в виде
std::tupleпри условии, что все типы одинаковы. Выводится содержимое поэлементно и разделяется.(одним символом точка).
Прикладной код должен содержать следующие вызовы:
- Печать адреса как
char(-1) - Печать адреса как
short(0) - Печать адреса как
int(2130706433) - Печать адреса как
long(8875824491850138409) - Печать адреса как
std::string - Печать адреса как
std::vector - Печать адреса как
std::list - Опционально. Печать адреса как
std::tuple
Добавить в .travis.yml на этапе сборки вызов doxygen и публикацию html-версии документации
на github-pages. Подробное описание на странице:
https://docs.travis-ci.com/user/deployment/pages/
Включить в репозиторий файл Doxyfile с включенными опциями HAVE_DOT и EXTRACT_ALL.
- функция печати должна быть одной шаблонной функцией, разные варианты входов должны быть реализованы через механизм SFINAE
- специализация для целочисленного представления должна быть единственная
- специализация для контейнеров должна быть единственная
- не должно быть реализации типа "если не совпало с иными - значит это контейнер"
- опциональная реализация для
std::tupleдолжна приводить к ошибке в случае отличающихся типов - найдите самый простой способ сделать для печати
std::string - бинарный файл и пакет должны называться
print_ip