Можно ли сделать так, чтобы тип CharT выводился автоматически в C++17?
template<typename CharT>
void test(std::basic_string_view<CharT> string) {
}
test<char>("hello world"); //ok
test("hello world"); //compile error
@Feeds забавная мысль пришла в голову -- С++ из языка со строгой типизацией движется в сторону (псевдо)динамической типизации (templates от типа, auto и т.д.)
Когда-нибудь количество перейдет в качество и мы увидим реально run-time динамику типов (и тогда пути Си и крестов окончательно разойдутся)
@VladimirGamalyan я имел в виду динамику, которую генерит непосредственно компилятор. В качестве аналогии можно привести varargs (например, gcc __builtin_va_start и т.п.)
@VladimirGamalyan само-собой именно про это (точнее, если уж совсем не менять дух языка) про аргументы (в т.ч. ссылки/указатели)), только не на уровне велосипедов, а встроенное в язык (следовательно в компилятор)
@avp Кмк, вариантов реализации динамических типов - вагон и довольно таки большая телешка. Т.е. фиксировать в стандарте - обрекать нишу на стагнацию и добровольно-принудительное использование одной, одобренной свыше техники.
Мне вообще больше нравится подход с минимальным ядром языка + обвес нестандартизированными библиотеками. Так оно с плюсами 98 и было практически - батарейки шли в виде буста. А теперь сунули и потоки, и файловую систему в стандарт.. А что если на моем устройстве нет потоков и файловой системы.
А пока потоков не было в стандарте - была нужда, которая пораждала такие вещи как boost::thread. А кто сейчас будет писать/развивать аналогичные бибилотеки, которые есть из коробки?
Это при том, что потоки в стандарте совсем уж примитивные (не прерываются, нет возможности сделать join с таймаутом и т.д. и т.п.)