C++ templates презентация
Содержание
- 2. Синтаксис template < typename T > void f(const T& value)
- 3. Примеры использования template < typename T > class auto_ptr { typedef
- 4. Примеры использования struct A { int a; }; int
- 5. smart pointers std::auto_ptr – лучше не использовать _com_ptr_t – для COM-интерфейсов
- 6. boost:: scoped_ptr template<class T> class scoped_ptr // noncopyable { T *
- 7. std::auto_ptr template < class _Ty > class auto_ptr { public: template<class
- 8. Недостатки глобальных переменных Объекты создаются всегда, даже если они не используются
- 9. Singleton template < typename T > class Singleton { public: static
- 10. Singleton class A { private: friend class Singleton<A>; A() {} public:
- 11. Частичная специализация шаблонов template < typename T > T MaxValue();
- 12. Compile time check template <bool b> struct CompileTimeError; template <> struct
- 13. Шаблонные шаблонные параметры template < typename T, template <typename> class Creator
- 14. Шаблонные шаблонные параметры template <class T> struct MallocCreator { static T*
- 15. Недостатки указателей на функции Нет информации о типах аргументов и возвращаемого
- 16. Функторы, простая реализация template < typename Signature > class function; template
- 17. Функторы, простая реализация template <typename ObjType, typename R, typename P1, typename
- 18. Функторы, простая реализация struct A { char C; A(char c =
- 19. Функторы STL int main() { A a; std::mem_fun1_t< void, A, double
- 20. Недостатки функторов STL Уродливый синтаксис Отсутствие функторов с большим количеством параметров
- 21. boost::function int main() { A a; boost::function < void (A&, double)
- 22. Применение функторов void generate_int(int& i) { i = rand() % 100
- 23. Привязывание параметров int main() { std::vector<int> vec(10); std::for_each(vec.begin(), vec.end(), &generate_int); std::for_each(vec.begin(),
- 24. Недостатки std::bind1st/2nd Работают только для binary_function Привязывают только один аргумент Неудобный
- 25. boost::bind bool in_range( int min_val, int max_val, int val ) {
- 26. “Подводные камни” boost::bind class WindowBase { typedef boost::function < void (void)
- 27. Преимущества использования шаблонов C++ Шаблоны решают проблему дублирования кода Зачастую шаблоны
- 28. Список литературы Бьерн Страуструп. Язык программирования С++ Скотт Мейерс. Эффективное использование
- 29. Скачать презентацию
Слайды и текст этой презентации