ดังนั้นฉันได้อ่านและดูเหมือนว่าไลบรารี Boost จะถูกใช้บ่อยมากในทางปฏิบัติ (ไม่ใช่ที่ร้านของฉัน) ทำไมถึงเป็นแบบนี้? และอะไรที่ทำให้มันยอดเยี่ยมมาก?
ดังนั้นฉันได้อ่านและดูเหมือนว่าไลบรารี Boost จะถูกใช้บ่อยมากในทางปฏิบัติ (ไม่ใช่ที่ร้านของฉัน) ทำไมถึงเป็นแบบนี้? และอะไรที่ทำให้มันยอดเยี่ยมมาก?
คำตอบ:
Boostถูกนำมาใช้อย่างกว้างขวางเนื่องจาก:
จากหน้าแรก:
"... หนึ่งในโครงการห้องสมุด C ++ ที่ได้รับการยกย่องและได้รับการออกแบบอย่างเชี่ยวชาญที่สุดในโลก" - Herb Sutter และ Andrei Alexandrescu มาตรฐานการเข้ารหัส C ++
"ข้อ 55: ทำความคุ้นเคยกับ Boost" - Scott Meyers, C ++ ที่มีประสิทธิภาพ, 3rd Ed
"วิธีแก้ปัญหาที่ชัดเจนสำหรับโปรแกรมเมอร์ส่วนใหญ่คือการใช้ไลบรารีที่ให้บริการแพลตฟอร์มที่หรูหราและมีประสิทธิภาพโดยไม่ขึ้นกับบริการที่จำเป็นตัวอย่างคือ BOOST ... " - Bjarne Stroustrup, Abstraction, libraries และประสิทธิภาพใน C ++
ดังนั้นจึงเป็นห้องสมุดที่ใช้กันอย่างแพร่หลายและเป็นที่ยอมรับ แต่ทำไมคุณถึงต้องการ?
ถ้าคุณต้องการ:
และอื่น ๆ อีกมากมายเมื่อคุณรหัสใน C ++ มีลักษณะที่เพิ่ม
เนื่องจากพวกเขาเพิ่มสิ่งที่ขาดหายไปหลายอย่างลงในไลบรารีมาตรฐานดังนั้นบางส่วนจึงรวมอยู่ในมาตรฐาน
Boost คนไม่ได้โกหก:
ทำไมองค์กรจึงควรใช้ Boost?
ในคำหนึ่งผลผลิต การใช้ไลบรารีคุณภาพสูงเช่น Boost ทำให้การพัฒนาเริ่มต้นเร็วขึ้นส่งผลให้เกิดข้อบกพร่องน้อยลงลดการคิดค้นสิ่งใหม่ ๆ ของล้อและลดต้นทุนการบำรุงรักษาในระยะยาว และเนื่องจากไลบรารี Boost มีแนวโน้มที่จะกลายเป็นมาตรฐานโดยพฤตินัยหรือนิตินัยโปรแกรมเมอร์หลายคนคุ้นเคยกับพวกเขาอยู่แล้ว
ไลบรารี Boost สิบแห่งรวมอยู่ใน TR1 ของไลบรารีมาตรฐาน C ++ ดังนั้นจึงมีกำหนดสำหรับการสร้างมาตรฐานเต็มรูปแบบในภายหลัง ไลบรารี Boost เพิ่มเติมอยู่ในท่อสำหรับ TR2 การใช้ไลบรารี Boost ช่วยให้องค์กรมีจุดเริ่มต้นในการนำเทคโนโลยีใหม่ ๆ มาใช้
หลายองค์กรใช้โปรแกรมที่ใช้กับ Boost อยู่แล้วเช่น Adobe Acrobat Reader 7.0
คลาส Boost สองสามอย่างมีประโยชน์มาก (shared_ptr) แต่ฉันคิดว่าพวกเขาค่อนข้างน่าเบื่อกับลักษณะและแนวคิดใน Boost เวลาในการคอมไพล์และขนาดไบนารีขนาดใหญ่นั้นบ้าไปแล้วกับ Boost เช่นเดียวกับในกรณีของโค้ดเทมเพลตใด ๆ จะต้องมีความสมดุล ฉันไม่แน่ใจว่า Boost พบหรือไม่
เพิ่มไลบรารีที่ช่วยให้สามารถเขียนโปรแกรม C ++ ได้ทันสมัยมากขึ้น
จากประสบการณ์ของฉันโปรแกรมเมอร์ C ++ หลายคนเป็นโปรแกรมเมอร์ C ++ ในช่วงต้นทศวรรษ 1990 ซึ่งค่อนข้างเขียนคลาส C ++ ไม่ใช่การใช้งานทั่วไปมากนัก วิธีการที่ทันสมัยมากขึ้นใช้ generics เพื่อสร้างซอฟต์แวร์ร่วมกันในลักษณะที่เหมือนกับภาษาไดนามิกมากขึ้น แต่คุณยังคงได้รับการตรวจสอบประเภท / ประสิทธิภาพในตอนท้าย มันดูน่าเกลียดไปหน่อย แต่เมื่อคุณแก้ไขปัญหาทางไวยากรณ์ได้แล้วมันก็ค่อนข้างดี Boost ช่วยให้คุณมีเครื่องมือมากมายในการเขียนสิ่งต่างๆได้อย่างง่ายดาย ตัวชี้สมาร์ทฟังก์ชั่น lambdas การผูก ฯลฯ จากนั้นก็มีไลบรารีบูสต์ที่ใช้ประโยชน์จากวิธีการเขียน C ++ แบบใหม่นี้เพื่อจัดหาสิ่งต่างๆเช่นเครือข่าย regex ฯลฯ ฯลฯ ...
หากคุณกำลังเขียนจำนวนมากสำหรับลูปหรือวัตถุฟังก์ชั่นการหมุนด้วยมือหรือทำการจัดการหน่วยความจำคุณควรตรวจสอบการเพิ่มประสิทธิภาพอย่างแน่นอน
BOOST เป็นชุดของไลบรารีที่เติมความต้องการทั่วไปสำหรับโครงการ C ++ จำนวนมาก โดยทั่วไปพวกเขาจะจัดลำดับความสำคัญของความถูกต้องการนำกลับมาใช้ใหม่ความสามารถในการพกพาประสิทธิภาพรันไทม์และประสิทธิภาพของพื้นที่ในการอ่านโค้ดการใช้งาน BOOST หรือบางครั้งคอมไพล์ พวกเขามักจะไม่ครอบคลุมข้อกำหนดการใช้งานระดับสูงที่สมบูรณ์ (เช่นเฟรมเวิร์กแอปพลิเคชัน) และแทนที่จะเสนอ (ขอบคุณ) ให้หน่วยการสร้างที่สามารถรวมกันได้อย่างอิสระมากขึ้นโดยไม่ต้องกำหนดหรือครอบงำการออกแบบแอปพลิเคชัน
เหตุผลสำคัญในการพิจารณาใช้ BOOST ได้แก่ :
ห้องสมุดที่อธิบายไว้ในบรรทัดหรือสองที่นี่: http://www.boost.org/doc/libs/
เพราะห้องสมุด C ++ มาตรฐานคือไม่ได้ทั้งหมดที่สมบูรณ์
สิ่งใดก็ตามที่เกี่ยวข้องกับการมีส่วนร่วมของKevlin Henneyควรได้รับการจดบันทึกไว้
Boost โดยทั่วไปบทสรุปของสิ่งที่มาตรฐานจะกลายเป็นนอกเหนือจากการตรวจสอบและการใช้งานทั้งหมดที่ Boost ทำให้คุณมั่นใจได้ว่าคุณจะได้รับข้อเสนอที่ดีสำหรับการอ้างอิงของคุณ
อย่างไรก็ตามร้านค้าส่วนใหญ่ไม่ได้ใช้ Boost เนื่องจากเป็น External Dependency และในความเป็นจริงการลดการพึ่งพาภายนอกก็มีความสำคัญเช่นกัน
Boost เป็น C ++ เช่น. NET Framework คือ C # แต่อาจจะมีขนาดเล็กกว่า
ฉันใช้ไลบรารีระบบไฟล์ออกไปเล็กน้อยและ boost :: shared_ptr ก็ค่อนข้างดี ฉันได้ยินว่ามันทำอย่างอื่นด้วย