Misplaced Pages

Boost (C++ libraries)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra , pseudorandom number generation , multithreading, image processing , regular expressions , and unit testing . It contains 164 individual libraries (as of version 1.76).

#312687

42-707: All of the Boost libraries are licensed under the Boost Software License , designed to allow Boost to be used with both free and proprietary software projects. Many of Boost's founders are on the C++ standards committee, and several Boost libraries have been accepted for incorporation into the C++ Technical Report 1 , the C++11 standard (e.g. smart pointers, thread, regex, random, ratio, tuple) and

84-411: A trade secret and concealed by such methods as non-disclosure agreements . Software copyright has been recognized since the mid-1970s and is vested in the company that makes the software, not the employees or contractors who wrote it. The tendency to license proprietary software , rather than sell it, dates from the time period before the existence, then the scope of software copyright protection

126-403: A case can be brought to court by an involved party as a breach of contract . United States and French courts have tried cases under both interpretations. More than 90 percent of companies use open-source software as a component of their proprietary software. The decision to use open-source software, or even engage with open-source projects to improve existing open-source software, is typically

168-407: A number of key characteristics: The Open Source Initiative vets and approves new open-source licenses that comply with its Open Source Definition . Outside of software, noncommercial-only Creative Commons licenses have become popular among some artists who wish to prevent others from profiting excessively from their work. However, software that is made available for noncommercial use only

210-430: A pay-per-usage or subscription basis, although other revenue models such as freemium are also used. For customers, the advantages of temporary licenses include reduced upfront cost, increased flexibility, and lower overall cost compared to a perpetual license. In some cases, the steep one-time cost demanded by sellers of traditional software were out of the reach of smaller businesses , but pay-per-use SaaS models makes

252-477: A position that faced opposition by Daniel J. Bernstein and others. In 2012, Rosen changed his mind, accepted CC0 as an open-source license, and admitted that, contrary to his previous claims, copyright can be waived away. In 2011, the Free Software Foundation added CC0 to its free software licenses and called it "the preferred method of releasing software in the public domain"  –

294-544: A pragmatic business decision. When proprietary software is in direct competition with an open-source alternative, research has found conflicting results on the effect of the competition on the proprietary product's price and quality. For decades, some companies have made servicing of an open-source software product for enterprise users as their business model. These companies control an open-source software product, and instead of charging for licensing or use, charge for improvements, integration, and other servicing. Software as

336-717: A result, Creative Commons withdrew their submission, and the license is not currently approved by the OSI. In July 2022, the Fedora Project deprecated CC0 for software code for the same reasons, but will still allow its use for non-code content. In June 2020, following a request for legacy approval, OSI formally recognized the Unlicense as an approved license meeting the OSD . Google does not allow its employees to contribute to projects under public domain equivalent licenses like

378-502: A service (SaaS) products based on open-source components are increasingly common. Open-source software is preferred for scientific applications, because it increases transparency and aids in the validation and acceptance of scientific results. Public-domain-equivalent license Public-domain-equivalent license are licenses that grant public-domain -like rights and/or act as waivers . They are used to make copyrighted works usable by anyone without conditions, while avoiding

420-426: A sign of agreement. As a result of the end of physical constraints, length increased. Most EULAs have been designed so that it is very difficult to read and understand them, but easy to agree to the licensing terms without reading them. Regardless of how easy it is to access, very few consumers read any part of the license agreement. Most assume the terms are unobjectionable or barely notice agreeing while installing

462-517: A source of extensive work and research into generic programming and metaprogramming in C++. Most Boost libraries are header based, consisting of inline functions and templates, and as such do not need to be built in advance of their use. Some Boost libraries coexist as independent libraries. The original founders of Boost that are still active in the community includes David Abrahams . An author of several books on C++, Nicolai Josuttis, contributed to

SECTION 10

#1732800768313

504-470: A wide range of C++ users and application domains. They range from general-purpose libraries like the smart pointer library, to operating system abstractions like Boost FileSystem , to libraries primarily aimed at other library developers and advanced C++ users, like the template metaprogramming (MPL) and domain-specific language (DSL) creation (Proto). In order to ensure efficiency and flexibility, Boost makes extensive use of templates . Boost has been

546-577: Is considered a free software license , compatible with the GNU General Public License , by the Free Software Foundation . Software license A software license is a legal instrument governing the use or redistribution of software. Since the 1970s, software copyright has been recognized in the United States. Despite the copyright being recognized, most companies prefer to sell licenses rather than copies of

588-524: Is no copyright claim, but code acquired under any almost any set of terms cannot be waved to the public domain. Permissive licenses can be used within copyleft works, but copyleft material cannot be released under a permissive license. Some weak copyleft licenses can be used under the GPL and are said to be GPL-compatible. GPL software can only be used under the GPL or AGPL. Free and open-source software licenses have been successfully enforced in civil court since

630-501: Is not considered open source. Sun Microsystems ' noncommercial-only Java Research License was rejected by the open-source community, and in 2006 the company released most of Java under the GPL. Since 1989, a variety of open-source licenses for software have been created. Choosing an open-source software license has grown increasingly difficult due to the proliferation of licenses , many of which are only trivially distinct. Many licenses are incompatible with each other, hampering

672-555: Is problematic, such as continental Europe . This is achieved by a public-domain waiver statement and a fall-back all- permissive license , for cases where the waiver is not valid. The Free Software Foundation and the Open Knowledge Foundation approved CC0 as a recommended license to dedicate content to the public domain. The FSF and the Open Source Initiative , however, do not recommend

714-503: The C++17 standard (e.g. filesystem, any, optional, variant, string_view). The Boost community emerged around 1998, when the first version of the standard was released. It has grown continuously since then and now plays a big role in the standardization of C++. Even though there is no formal relationship between the Boost community and the standardization committee, some of the developers are active in both groups. The libraries are aimed at

756-621: The Boost array library in 2001. There are mailing lists devoted to Boost library use and library development, active as of 2023. Boost is licensed under its own free , open-source license , known as the Boost Software License. It is a permissive license in the style of the BSD license and the MIT license , but without requiring attribution for redistribution in binary form . The license has been OSI-approved since February 2008 and

798-471: The FOSS community is whether open-source licenses are "bare licenses" or contracts . A bare license is a set of conditions under which actions otherwise restricted by intellectual property laws are permitted. Under the bare license interpretation, advocated by the Free Software Foundation (FSF), a case is brought to court by the copyright holder as copyright infringement . Under the contract interpretation,

840-581: The Foundation then reviewed its position specifically for softwares. In February 2012, when the CC0 license was submitted to the Open Source Initiative for approval, controversy arose over a clause which excluded any relevant patents held by the copyright holder from the scope of the license. This clause was added with scientific data in mind rather than software, but some members of the OSI believed it could weaken users' defenses against software patents . As

882-532: The MIT License, was published in 2018 and has the identifier MIT-0 in the SPDX License List. In the free-software community, there has been some controversy over whether a public domain dedication constitutes a valid open-source license . In 2004, lawyer Lawrence Rosen argued in the essay "Why the public domain isn't a license" that software could not truly be given into public domain,

SECTION 20

#1732800768313

924-708: The Unlicense. The BSD Zero Clause License removes half a sentence from the ISC license , leaving only an unconditional grant of rights and a warranty disclaimer. It is listed by the Software Package Data Exchange as the Zero Clause BSD license, with the SPDX identifier 0BSD . It was first used by Rob Landley in Toybox and is OSI-approved. The MIT No Attribution License , a variation of

966-480: The company to maximize revenue. Traditionally, software was distributed in the form of binary object code that could not be understood or modified by the user, but could be downloaded and run. The user bought a perpetual license to use a particular version of the software. Software as service (SaaS) vendors—who have the majority market share in application software as of 2023 —rarely offer perpetual licenses. SaaS licenses are usually temporary and charged on

1008-454: The complexities of attribution or license compatibility that occur with other licenses. No permission or license is required for a work truly in the public domain, such as one with an expired copyright; such a work may be copied at will. Public domain equivalent licenses exist because some legal jurisdictions do not provide for authors to voluntarily place their work in the public domain, but do allow them to grant arbitrarily broad rights in

1050-436: The extent that they do not breach reasonable consumer expectations. The gap between expectations and the content of EULAs is especially wide when it comes to restrictions on copying and transferring ownership of digital content. Many EULAs contain stipulations that are likely unenforceable depending on the jurisdiction. Software vendors keep these unenforceable provisions in the agreements, perhaps because users rarely resort to

1092-501: The goals of the free software movement. Translation issues, ambiguity in licensing terms, and incompatibility of some licenses with the law in certain jurisdictions compounds the problem. Although downloading an open-source module is quick and easy, complying with the licensing terms can be more difficult. The amount of software dependencies means that engineers working on complex projects must often rely on software license management software in order to help them achieve compliance with

1134-474: The legal system to challenge them. Service-level agreements are often used for enterprise software and guarantee a level of service, such as software performance or time to respond to issue raised by the customer. Many stipulate financial penalties if the service falls short of the agreed standard. SLAs often cover such aspects as availability, reliability, price, and security using quantifiable metrics. Multi-tier SLAs are common in cloud computing because of

1176-402: The licensing terms of open-source components. Many open-source software files do not unambiguously state the license, increasing the difficulties of compliance. When combining code bases, the original licenses can be maintained for separate components, and the larger work released under a compatible license. This compatibility is often one-way. Public domain content can be used anywhere as there

1218-461: The mid-2000s. Courts have found that distributing software indicates acceptance of the license's terms. However, developers typically achieve compliance without lawsuits. Social pressures , such as the potential for community backlash, are often sufficient. Cease and desist letters are a common method to bring companies back into compliance, especially in Germany. A long-debated subject within

1260-590: The prototypical contract where both parties fully understand the terms and agree of their own free will. There has been substantial debate on to what extent the agreements can be considered binding. Before 1996 in the United States, clickwrap or browsewrap licenses were not held to be binding, but since then they often have been. Under the New Digital Content Directive effective in the European Union, EULAs are only enforceable to

1302-434: The same license, unrestricted access to the source code , and nondiscrimination between different uses—in particular, allowing commercial use. The source code (or compiled binaries in the form of object code ) of a computer program is protected by copyright law that vests the owner with the exclusive right to copy the code. The underlying ideas or algorithms are not protected by copyright law, but are often treated as

Boost (C++ libraries) - Misplaced Pages Continue

1344-445: The software affordable. Initially, end-user license agreements (EULAs) were printed on either the shrinkwrap packaging encasing the product (see shrink-wrap contract ) or a piece of paper. The license often stipulated that a customer agreed if they did not return the product within a specified interval. More recently, EULAs are most commonly found as clickwrap or browsewrap where the user's clicks or continued browsing are taken as

1386-409: The software because it enables them to enforce stricter terms on redistribution. Very few purchasers read any part of the license, initially shrink-wrap contracts and now most commonly encountered as clickwrap or browsewrap . The enforceability of this kind of license is a matter of controversy and is limited in some jurisdictions. Service-level agreements are another type of software license where

1428-410: The software. Companies take advantage of consumers' inattention to insert provisions into EULAs. Proprietary software is usually offered under a restrictive license that bans copying and reuse and often limits the purchaser to using the software on one computer. Source code is rarely available. Derivative software works and reverse engineering are usually explicitly prohibited. Many EULAs allow

1470-549: The usage of this license for software due to inclusion of a clause expressly stating it does not grant patent licenses. In June 2016 an analysis of the Fedora Project 's software packages placed CC0 as the 17th most popular license. The Unlicense software license, published around 2010, offers a public-domain waiver text with a fall-back public-domain-like license, inspired by permissive licenses but without an attribution clause. In 2015 GitHub reported that approximately 102,000 of their 5.1 million licensed projects, or 2%, use

1512-447: The use of different computing services that may be managed by different companies. SLAs in cloud computing are an area under active research as of 2024 . Before the open-source movement in the 1980s, almost all software was proprietary and did not disclose its source code . Open-source licensing is intended to maximize openness and minimize barriers to software use, dissemination, and follow-on innovation. Open-source licenses share

1554-552: The vendor agrees to provide a level of service to the purchaser, often backed by financial penalties. Copyleft is a type of free license that mandates derivative works to be licensed. The other types of free license lack this requirement: for permissive licenses , attribution is typically the only requirement, and public-domain-equivalent licenses have no restrictions. The proliferation of open-source licenses has compounded license compatibility issues, but all share some features: allowing redistribution and derivative works under

1596-401: The vendor to change the terms at any time and the customer must choose between agreeing or ceasing use of the product, without getting a refund. It is common for EULAs to allow unilateral termination by the vendor for any number of vague reasons or none at all. EULAs, almost always offered on a take-it-or-leave-it basis as a non-negotiable condition for using the software, are very far from

1638-435: The vendor to collect information about the user and use it in unrestricted ways. Some EULAs restrict the ability of users to exercise copyright over derivative work made using the software, such as creative creations in the virtual worlds of video games . Most disclaim any liability for harms caused by the product, and prevent the purchaser from accessing the court system to seek a remedy. Furthermore, many EULAs allow

1680-522: The work to the public. The licensing process also allows authors, particularly software authors, the opportunity to explicitly deny any implied warranty that might give someone a basis for legal action against them. While there is no universally agreed-upon license, several licenses aim to grant the same rights that would apply to a work in the public domain. In 2000, the "Do What the Fuck You Want To Public License" ( WTFPL )

1722-406: Was clear . These licenses have continued in use after software copyright was recognized in the courts, and are considered to grant the company extra protection compared to copyright law. According to United States federal law , a company can restrict the parties to which it sells but it cannot prevent a buyer from reselling the product. Software licensing agreements usually prohibit resale, enabling

Boost (C++ libraries) - Misplaced Pages Continue

1764-458: Was released as a public-domain-equivalent license for software. It is distinguished among software licenses by its informal style and lack of a warranty disclaimer . In 2016, according to Black Duck Software, the WTFPL was used by less than 1% of FOSS projects. In 2009, Creative Commons released CC0 , which was created for compatibility with jurisdictions where dedicating to public domain

#312687