⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 history.qbk

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 QBK
📖 第 1 页 / 共 2 页
字号:
]][:['- fewer bugs like the one Joaquin found]][:['- better space efficiency]][:['- exception-safety guarantees are immediately full-filled (I haven'tlooked, but I suspect that there are several bugs in this area)]][*Daniel][:['Multi_index supports everything a bimap would, but itsinterface is more cumbersome. I for one won't use a W3DOM-like libraryif we get one, but I would happily use property_tree. I've also onlyused multi_index once, and that was to use it as a bidirectional map.Property_tree covers other areas as well as being a potential subset ofan XML library, but I still hold there is value in such a subset.]][*Boris][:['I haven't used program_options yet. But if I understandcorrectly both libraries seem to support storing and accessing data withstrings that might describe some kind of hierarchy. This seems to be the coreidea of both libraries - is this correct?]][:['Then it wouldn't matter much what container is used. However a generic treewhich can store data hierarchically probably makes most sense. If Iunderstand correctly both libraries could make use of such a class?]][*Marcin][:['I think generic tree container is material for another library.Whether property_tree should be based on it or not is a matter of internalimplementation, and generally of little interest to users. The biggest valueof property_tree is in its easy to use interface, that should not becompromised, if at all possible. I have been already reassured in this viewby quite many people who took their time to review the library.]][*Boris][:['I was trying to see the big picture: I rather prefer a C++standard based on a few well-known concepts like containers, iterators,algorithms etc. instead of having a C++ standard with hundreds of components which are tailored for specific needs, collaborate with only a handful of othercomponents and think they provide an easy-to-use interface while all theeasy-to-use interfaces make the whole standard less easy-to-use.]][:['That said I have used your property tree library myself to read and write aconfiguration file. It was indeed very easy to use. However it would havebeen even easier if it was something I had known before like eg. aniterator. For now I will definitely use your property tree library but wouldappreciate if existing concepts were reused many C++ developers are familiarwith. My opinion is that your library should be a part of Boost but shouldbe more generalized in the future.]][*Thorsten][:['Well, I think we need both. Boost.MultiIndex is a great library and can do all kinds of wonderful things. But I would still like to seea bidirectional map (boost::bimap) written as a wrapper around it toget an easy and specialized interface.]][*Pavel][:['Bimap is available in libs/multi-index/examples/bimap.cpp.]][*Thorsten][:['Right, but the real value comes when somebody designs a niceSTL-like interface and write docs etc, at least that was my point.]][*Dave][:['IMO Thorsten is exactly right.  This is precisely the sort of thing that could be added to the library as part of its ongoing maintenanceand development (without review, of course).]][*Joaquin][:['Thorsten, we have talked about this privately in the past, but I feel like bringing it to the list in the hope of getting the attention of potential contributors:]][:['There are some data structures buildable with B.MI which are regarded asparticularly useful or common, like for instance the bidirectional map orbimap. A lean and mean implementation is provided in the aforementionedexample, but certainly a much carefully crafted interface can be providedkeeping B.MI as the implementation core: operator\[\], selection of1-1/1-N/N-1/N-N variants, hashing/ordering, etc.]][:['I'm afraid I don't have the time to pursue this, as the current roadmap forcore features of B.MI is taking all the spare time I can dedicate to thelibrary. For this reason, I would love to see some volunteer jumping in whocan develop this and other singular containers using B.MI (a cache containercomes to mind) and then propose the results here either as a stand alone library of as part of B.MI --I'd prefer the former so as to keep the sizeof B.MI bounded.]][:['If there's such a volunteer I can provide her with some help/mentoring. I alsowonder whether this is a task suitable to be proposed for Google Summer of Code.]][*Thorsten][:['I think it would be good for SOC. All the really hard thingsare taken care of by B.MI, and so it seems reasonable for a student to be ableto fill in the details.]][*Dave][:['Great!]][*Jeff][:['Please write a proposal!]][*Joaquin][:['I've just done so:]][blurb *Specialized containers with Boost.MultiIndex*    *Introduction*    Boost.MultiIndex allows the construction of complex data structures involving    two or more indexing mechanisms on the same set of elements. Out of the    unlimited range of possible data structures specifiable within    Boost.MultiIndex, some particular configurations arise recurrently:    *a.* A bidirectional map or bimap is a container of elements of type pair<T,Q>    where fast look up is provided both for the T and the Q field,    in contrast with a regular STL map which only allows for fast look up on T.    *b.* An MRU (most recently used) list keeps the n last referenced elements:    when a new item is inserted and the list has reached its maximum length, the    oldest element is erased, whereas if an insertion is tried of a preexistence    element, this gets promoted to the first position. MRU lists can be used to    implement dynamic caches and the kind of behavior exhibited by programs    featuring a "Recent files" menu command, for instance.    Although Boost.MultiIndex provides the mechanisms to build these common structures,    the resulting interface can be cumbersome and too general in comparison with    specialized containers focusing on such particular structures.    *Goal*    To write a library of specialized containers like the ones described above, using    Boost.MultiIndex as the implementation core. Besides bimap and MRU list, the student    can also propose other specialized containers of interest in the community. It is    expected that the library meets the standards of quality required by Boost for an    eventual inclusion in this project, which implies a strong emphasis on interface    design, documentation and unit testing; the mentor will be guiding the student    through the complete cycle from specification and requirements gathering to    documentation and actual coding. The final result of the project must then contain:    *a.* Source code following    [@http://boost.org/more/lib_guide.htm#Guidelines Boost programming guidelines].    *b.* User documentation. Requirements on the format are loose, though the    [@http://www.boost.org/tools/quickbook/doc/html/index.html QuickBook] format is    gaining acceptance within Boost.    *c.* Complete set of unit tests powered by    [@http://boost.sourceforge.net/boost-build2/ Boost Build System V2].    *Requirements*    *a.* Intermediate-to-high level in C++, with emphasis in generic programming    (templates).    *b.* Knowledge of the STL framework and design principles. Of course, knowledge    of Boost in general and Boost.MultiIndex in particular is a big plus.    *c.* Acquaintance with at least two different C++ programming environments.    *d.* Some fluency in the English language; subsequent reviews of the documentation    can help smooth rough edges here, though.    *e.* A mathematical inclination and previous exposure to a formal Algorithms course    would help very much.    *f.* A craving for extreme quality work.    *Benefits for the student*    The student taking on this project will have the opportunity to learn the complete    process of software production inside a highly regarded C++ open source institution,    and even see her work included in Boost eventually. The completion of the project    involves non-trivial problems in C++ interface design and so-called modern C++    programming, high quality user documentation and unit testing. The student will    also learn, perhaps to her surprise, that most of the time will be spent gathering    and trying ideas and, in general, thinking, rather than writing actual code.][*Matias][:['I am planning to submit an application to SoC. I will love to make realthe specialized containers you mention and try to include some useful others.]][:[^And then... after long hours of coding (and fun) this library saw the light.]][:__BOOST_BIMAP_LOGO__][endsect][endsect]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -