Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.216.202] |
|
Сообщ.
#1
,
|
|
|
Собственно вопрос:
какие паттерны помимо итератора используются (реализованы) в stl, boost? есть ли абстрактная фабрика, компоновщик или что нибудь похожее? |
Сообщ.
#2
,
|
|
|
См. лучше библиотеку loki.
|
Сообщ.
#3
,
|
|
|
Цитата Flex Ferrum @ 21.09.04, 09:17 См. лучше библиотеку loki. разве что как учебное пособие - она собсно как таковая и делалась. А в boost, имхо, реализовано всё что есть в Loki. to Mfcer__: вот список с http://boost.org/libs/libraries.htm: * any - Safe, generic container for single values of different value types, from Kevlin Henney. * array - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis. * bind and mem_fn - Generalized binders for function/object/pointers and member functions, from Peter Dimov. * call_traits - Defines types for passing parameters, from John Maddock, Howard Hinnant, et al. * compatibility - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer. * compressed_pair - Empty member optimization, from John Maddock, Howard Hinnant, et al. * concept check - Tools for generic programming, from Jeremy Siek. * config - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users. * conversion - Numeric, polymorphic, and lexical casts, from Dave Abrahams and Kevlin Henney. * crc - Cyclic Redundancy Code, from Daryle Walker. * date_time - Date-Time library from Jeff Garland. * dynamic_bitset - A runtime sized version of std::bitset from Jeremy Siek and Chuck Allison. * enable_if - Selective inclusion of function template overloads, from Jaakko Järvi, Jeremiah Willcock, and Andrew Lumsdaine. * filesystem - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes. * format - Type-safe 'printf-like' format operations, from Samuel Krempp. * function - Function object wrappers for deferred calls or callbacks, from Doug Gregor. * functional - Enhanced function object adaptors, from Mark Rodgers. * graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team. * integer - Headers to ease dealing with integral types. * interval - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Hervé Brönnimann and Sylvain Pion. * io state savers - Save I/O state to prevent jumbled data, from Daryle Walker. * iterators - Iterator construction framework, adaptors, concepts, and more, from Dave Abrahams, Jeremy Siek, and Thomas Witt. * lambda - Define small unnamed function objects at the actual call site, and more, from Jaakko Järvi and Gary Powell. * math - Several contributions in the domain of mathematics, from various authors. * math/common_factor - Greatest common divisor and least common multiple, from Daryle Walker. * math/octonion - Octonions, from Hubert Holin. * math/quaterion - Quaterions, from Hubert Holin. * math/special_functions - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin. * mpl - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy. * multi_array - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia. * operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek. * optional - Discriminated-union wrapper for optional values, from Fernando Cacciola. * pool - Memory pool management, from Steve Cleary. * preprocessor - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides. * property map - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek. * python - Reflects C++ classes and functions into Python, from Dave Abrahams. * random - A complete system for random number generation, from Jens Maurer. * rational - A rational number class, from Paul Moore. * ref - A utility library for passing references to generic functions, from Jaako Järvi, Peter Dimov, Doug Gregor, and Dave Abrahams. * regex - Regular expression library, from John Maddock. * signals - managed signals & slots callback implementation, from Doug Gregor. * smart_ptr - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler. * static_assert - Static assertions (compile time assertions), from John Maddock. * spirit - LL parser framework represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team. * test - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental. * thread - Portable C++ multi-threading, from William Kempf. * timer - Event timer, progress timer, and progress display classes, from Beman Dawes. * tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela. * tuple - Ease definition of functions returning multiple values, and more, from Jaakko Järvi. * type_traits - Templates for fundamental properties of types, from John Maddock, Steve Cleary, et al. * uBLAS - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch. * utility - Class noncopyable plus checked_delete(), checked_array_delete(), next(), prior() function templates, plus base-from-member idiom, from Dave Abrahams and others. * value_initialized - Wrapper for uniform-syntax value initialization, from Fernando Cacciola, based on the original idea of David Abrahams. * variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman. |
Сообщ.
#4
,
|
|
|
Цитата Yuri Burger, 21.09.04, 10:41 разве что как учебное пособие - она собсно как таковая и делалась. А в boost, имхо, реализовано всё что есть в Loki. Из того, что реализовано в Loki, в boost'е есть только умный указатель, потоки и MetaProgramming Library. Ни visitor'ов, ни абстрактных фабрик, ни мультиметодов, и т. п. |
Сообщ.
#5
,
|
|
|
Цитата Flex Ferrum @ 21.09.04, 10:43 Цитата Yuri Burger, 21.09.04, 10:41 разве что как учебное пособие - она собсно как таковая и делалась. А в boost, имхо, реализовано всё что есть в Loki. Из того, что реализовано в Loki, в boost'е есть только умный указатель, потоки и MetaProgramming Library. Ни visitor'ов, ни абстрактных фабрик, ни мультиметодов, и т. п. А синглетон? А треитсы? зы: ну насчет фэктори и мультиметодов таки да, забыл |
Сообщ.
#6
,
|
|
|
Цитата Yuri Burger, 21.09.04, 12:43 А синглетон? А треитсы? Гм. Это самое очевидное, что в первую очередь руки тянутся написать... |
Сообщ.
#7
,
|
|
|
А ссылочку на Loki?!
|
Сообщ.
#8
,
|
|
|
так я понял что в boost нет большого количества реализованных паттернов
так что посмотрим на loki. Вот возник еще один вопрос про boost: Будет ли boost включен в следующую VS по умолчанию? Предпосылками этому вопросу послужило то, что даже в MSDN есть примеры с boost'ом |
Сообщ.
#9
,
|
|
|
Сообщ.
#10
,
|
|
|
Loki это кажется библиотека которую еще Александреску разрабатывал?
В книге Современное проектирование на С++? |
Сообщ.
#11
,
|
|
|
Цитата Mfcer__, 24.09.04, 01:57 Loki это кажется библиотека которую еще Александреску разрабатывал? В книге Современное проектирование на С++? Точно. Именно она. |
Сообщ.
#12
,
|
|
|
а вот и сайтик самой книги
http://www.moderncppdesign.com/ А вот и сам александреску http://sourceforge.net/users/aandrei/ |