Search
Write a publication
Pull to refresh

Comments 8

Грустно читать подобные статьи. Начинается казаться, что ничего не понимаешь в с++. :)
Не могу не согласиться. Гораздо лучше читать такие статьи и книги, после которых начинает казаться, причём небезосновательно, что понимаешь. Скотт Мейерс, Андрей Александреску, вот это всё.
Учитывая, что Страуструп, по собственному признанию, знает C++ на 8 из 10, это в любом случае обманчивое ощущение:)
После того, как Страуструп перечитал свою последнюю книгу, он понизил оценку до 7.
Ему, кстати, тоже полезно будет почитать Майерса и Александреску.
Слишком сложно!

template <typename...Ts>
struct instantate {
	std::tuple<decltype(&MyClass::f<Ts>)...> c{&MyClass::f<Ts>...};
};
instantate<int, double, bool, char, const char*> inst;
Круто. У меня на clang'е в release только пришлось volatile дописать:
instantate<int, double, bool, char, const char*> inst;
Это более элегантное решение, а не более простое :-)

Оно столько хитрых вещей использует из C++11, что мама не горюй. Но они, собственно, для того в язык и были добавлены, чтобы подобные вещи делать. Так что да, нужно потихоньку перестраивать своё мышление.

Как AxisPod говорил: иногда рекурсивный подход, аналогичный обработке «списка типов» имеет смысла и с вариадиками, но «это требуется совсем не всегда». Вот именно потому что можно комбинировать уже готовые части подобным способом.
Sign up to leave a comment.

Articles