Archive

Posts Tagged ‘шаблон’

Досконала переадресація

Загальна форма проблеми переадресації має такий вигляд:

Для заданого виразу E(a1, a2, ..., an), що залежить від (шаблонних) параметрів a1, a2, ..., an, написати функцію (об’єкт) f такий, що виклик f(a1, a2, ..., an) тотожний виклику E(a1, a2, ..., an).

Стандарт C++11 уможливив створення таких функцій (об’єктів) завдяки rvalue посиланням.

Розглянемо просту функцію-фабрику:

template<typename T, typename Arg> 
shared_ptr<T> factory(Arg arg)
{ 
  return shared_ptr<T>(new T(arg));
}

Читати далі…

Категорії:C++ Позначки:, ,

Як облаштувати сирцевий код шаблона

Введення

Часто мене запитували складно чи лекго програмувати з шаблонами. Відповідь яку я зазвичай давав така: “Це легко коли ти використовуєш, але складно коли створюєш їх”. Лиш погляньте на деякі бібліотеки шаблонів, які використовуються повсякденно, наприклад, STL, ATL, WTL, деякі бібліотеки з Boost, і ви побачите, що я маю на увазі під цим. Ці бібліотеки є чудовим прикладом принципу “простий інтерфейс – складна реалізація”.
Читати далі…

Категорії:Перекладені Позначки:,