RTTI в C++ ограничен оператором typeof структурой type_info. По сути можно только сравнить информацию о 2х типах в рантайме и не более того. Всё связанное с детектированием определенных методов, свойств и подобных вещей реализуется в compile-time с помощью type_traits и SFINAE.
Ну проблема в том, что сам C++ оперирует указателями и получить размер массива (именно как элемента языка, а не контейнера) можно только на этапе компиляции, динамически это сделать невозможно, поэтому в функции работы с массивами надо прокидывать размер самому. Контейнеры уже следят своими механизмами.
Имхо лучше в сторону miracast смотреть, по крайней мере есть андроид девайсы с поддержкой. Програмной эмуляции пока не встречал. Дибо конкретно под андроид еще вариант Chromecast.
UPS не стабилизатор, если сеть фонит, но напряжение не пропадает, то всё доберется до компьютера. Можно проверить с стабилизатором, в принципе даже можно сетевой фильтр подобрать (жаль, что многие производители откровенно говоря… (обманывают) и никакие фильтры не ставят, продают удлинители в лучшем случае с предохранителем). По возможности попробуйте отключить всё остальное оборудование на линии.
Вообще поглядите показатели напряжения при полной нагрузке, как будет проседать.
Либо делайте костыльно, например используя boost::any, вы сможете завернуть при возврате любой тип, но развернуть будет не очень просто, надо будет сравнивать с typeid нужного типа.
Так невозможно по сути сделать, вам надо возвращать разные типы из одного метода, C++ вам этого не позволит. Подобное в C++ можно сделать только в compile-time, а вы хотите в run-time.
Меня лично C++ привлекает за шаблонное метапрограммирование. Для web применение находится, в этом есть реальное удобство. Потихоньку делаю свой IoC контейнер для C++11, для web опять же он очень даже применим. Но это требует ну уж очень много времени, далеко не всегда это выгодно. Или например делал свою обертку для шаблонизатора ClearSilver, подключать callback'и стало очень удобно, хоть и потерялась возможность произвольного кол-ва аргументов для них. Точнее просто и не делал их. Но теперь в функциях пишется только их контентная часть и не требуется вообще никакого кода для разбора типов данных из ClearSilver, уж очень неудобно это из коробки. Но опять, это съедает много времени.
Я сам занимался разработкой 2х разных независимых веб фреймворков для C++, задача очень непростая. В итоге я остановился для себя на том, что проще взять boost::asio и делать конкретно то что нужно, от силы сделав несколько классов, например для полноценного парсинга HTTP запросов.
Если бы компиляторы работали идеально, то большинство проблем отпало бы, но увы, идеально работать они никогда не будут. Дальнейшая проблема, это в их старости, да, есть gcc 4.8-4.9, но далеко не везде возможно завести эти версии на продакшене, у нас местами болтается еще 4.2.1. Тогда как с тем же PHP в этом плане проблем меньше.
Да тут дело даже не в самом C++, и не в самом C++14. По сути уже C++11 дал очень много. Основная проблема, это поддержка стандарта, приходится общаться как с gcc (использую 4.8.1 и 4.9), msvc (2012, 2013). О заявленной полной поддержке C++11 в gcc говорят, но от этого поддержка полной не становится. Регулярки до сих пор не работают, очень много багов, недоработок. Лямбды не захватывают variadic аргументы. Баги с вложенными лямбдами. У msvc всё еще хуже. clang увы не щупал. Вменяемая поддержка C++11 вряд ли появится раньше 2015 года, с пофиксинными багами и со всеми необходимыми доработками. А C++14 не стоит ждать раньше года 2016.
Опять же это почти полное отсутствие фреймворков для web. Существующие ныне это полутрупы, а то и полные трупы. Которые в принципе никак не развиваются.
На C++ сделать множно многое, но рационально ли это. У нас сейчас основная разработка для веб ведется на C++, честно скажу, очень хочется перевезти всё на PHP, уж очень много времени уходит на отлов багов и утечек памяти. Да и написание самого кода совсем не быстрое.