2016-04-03 16 views
5

Tôi đã đọc một cuốn sách về C++ 14/11. Tôi vừa đọc xong một chương về từ khóa constexpr. Tôi biết những gì nó được sử dụng cho. Tôi nhận được làm thế nào nó có thể được sử dụng trên các lớp học và các chức năng thành viên lớp học. Nhưng, tôi nên sử dụng constexpr thường xuyên như thế nào? Tôi có nên sử dụng nó ngay cả trong mã cho các lớp tôi biết sẽ không bao giờ được sử dụng để tạo ra các đối tượng contstexpr? (Chỉ trong trường hợp, bởi vì nó không chi phí cho tôi bất cứ điều gì, phải không?)C++ 14 Tôi nên sử dụng constexpr bao lâu một lần?

+0

Bạn hỏi ý kiến. Từ quan điểm của tôi nếu xem, bạn nên sử dụng nó thường xuyên nhất có thể. Ai đó có thể có những suy nghĩ khác nhau. –

+0

@GeorgeSovetov Vấn đề là 'ý kiến' là không có chủ đề ở đây (_primarily ý kiến ​​dựa trên category_). – edmz

+4

Sớm và thường xuyên. Và hai lần vào Chủ Nhật. – wally

Trả lời

6

C++ 14 Tôi nên sử dụng constexpr thường xuyên như thế nào?

Có một cuộc thảo luận rộng rãi trong mục 15 (Sử dụng constexpr bất cứ khi nào có thể) của Scott Meyer's cuốn sách Effective Modern C++.

Phác thảo của mục này là constexpr nên được sử dụng bất cứ khi nào có thể, do thực tế là các chức năng và đối tượng có thể được sử dụng trong một phạm vi rộng hơn các không phải là constexpr.

Tuy nhiên, trong cùng một mục, tác giả đề cập đến cảnh báo lạm dụng constexpr. Tức là, nếu bạn quyết định hội đủ điều kiện một đối tượng hoặc một chức năng là constexpr, khách hàng của bạn sẽ được phép sử dụng nó trong các nội dung constexpr. Tuy nhiên, nếu sau này bạn quyết định rằng mã này không được là constexpr và xóa constexpr, điều này có thể làm cho mã của bạn không biên dịch bao gồm các tác dụng phụ mà điều này sẽ có cho khách hàng của bạn.

Trích dẫn từ văn bản gốc:

“Sử dụng constexpr bất cứ khi nào có thể” là sự sẵn sàng của bạn để thực hiện một cam kết lâu dài để những hạn chế nó áp đặt trên các đối tượng và chức năng bạn áp dụng nó vào.

Các vấn đề liên quan