Câu hỏi được gắn thẻ «constexpr»

constexpr là một công cụ sửa đổi được giới thiệu trong C ++ 11, nó thông báo cho trình biên dịch rằng giá trị của một hàm hoặc biến đã được biết hoặc có thể được tính toán tại thời điểm biên dịch. Như vậy, nó có thể được sử dụng như một hằng số ở những nơi mà nếu không thì không thể.






4
Có thể sử dụng chuỗi std :: trong constexpr không?
Sử dụng C ++ 11, Ubuntu 14.04, chuỗi công cụ mặc định GCC . Mã này không thành công: constexpr std::string constString = "constString"; lỗi: loại 'const chuỗi {aka const std :: basic_opes}' của biến constexpr 'constString' không theo nghĩa đen ... bởi vì ... 'std :: basic_opes' có hàm …

2
Constexpr có ngụ ý nội tuyến không?
Hãy xem xét hàm nội tuyến sau: // Inline specifier version #include<iostream> #include<cstdlib> inline int f(const int x); inline int f(const int x) { return 2*x; } int main(int argc, char* argv[]) { return f(std::atoi(argv[1])); } và phiên bản tương đương của constexpr: // Constexpr specifier version #include<iostream> #include<cstdlib> constexpr …

2
“Đầu độc một hàm” trong C ++ có nghĩa là gì?
Vào cuối bài nói chuyện của Scott Schurr "Giới thiệu constexpr" tại CppCon , anh ấy hỏi "Có cách nào để đầu độc một chức năng" không? Sau đó, ông giải thích rằng điều này có thể được thực hiện (mặc dù theo cách không chuẩn) bằng cách: Đưa throwvào …
96 c++  constexpr 


3
Constexpr so với macro
Tôi nên sử dụng macro ở đâu và tôi thích constexpr ở đâu? Về cơ bản chúng không giống nhau sao? #define MAX_HEIGHT 720 vs constexpr unsigned int max_height = 720;
92 c++  c++11  macros  constexpr 

3
Làm thế nào tôi có thể có được độ sâu của một vectơ std :: chiều đa chiều tại thời gian biên dịch?
Tôi có một hàm có nhiều chiều std::vectorvà yêu cầu độ sâu (hoặc số lượng kích thước) được truyền vào dưới dạng tham số mẫu. Thay vì mã hóa giá trị này, tôi muốn viết một constexprhàm sẽ lấy std::vectorvà trả về độ sâu làm unsigned integergiá trị. Ví dụ: …



1
loại trả về std :: cặp <auto, auto>
Tôi đã chơi xung quanh với autotrong std::pair. Trong đoạn mã dưới đây, hàm fđược cho là trả về một std::pairloại phụ thuộc vào tham số mẫu. Một ví dụ làm việc: VÍ DỤ 1 template &lt;unsigned S&gt; auto f() { if constexpr (S == 1) return std::pair{1, 2}; // …


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.