คำถามติดแท็ก c++14

C ++ 14 เป็นชื่อของมาตรฐาน C ++ ซึ่งได้รับการอนุมัติในปี 2014 โดยสร้างขึ้นจากมาตรฐาน C ++ 11 ก่อนหน้าปรับปรุงภาษาหลักและไลบรารีมาตรฐานและเพิ่มคุณสมบัติบางอย่าง

1
ผ่านตัวชี้ฟังก์ชั่นจากอาร์เรย์ของตัวชี้ฟังก์ชั่นเป็นอาร์กิวเมนต์แม่แบบ
ฉันต้องการผ่านตัวชี้ฟังก์ชั่นจากอาร์เรย์ของตัวชี้ฟังก์ชั่นเป็นอาร์กิวเมนต์แม่แบบ รหัสของฉันดูเหมือนว่าจะรวบรวมโดยใช้ MSVC แม้ว่า Intellisense บ่นว่ามีบางอย่างผิดปกติ ทั้ง gcc และ clang ไม่สามารถคอมไพล์โค้ดได้ ลองพิจารณาตัวอย่างต่อไปนี้: static void test() {} using FunctionPointer = void(*)(); static constexpr FunctionPointer functions[] = { test }; template <FunctionPointer function> static void wrapper_function() { function(); } int main() { test(); // OK functions[0](); // OK wrapper_function<test>(); // OK wrapper_function<functions[0]>(); …
9 c++  templates  c++14 

3
การสร้างรหัสแลมบ์ดา C ++ พร้อมการเริ่มต้นใน C ++ 14
ฉันกำลังพยายามที่จะเข้าใจ / อธิบายรหัสโค้ดที่สร้างขึ้นเมื่อส่งผ่านการจับไปยัง lambdas โดยเฉพาะอย่างยิ่งในการจับภาพเริ่มต้นทั่วไปที่เพิ่มใน C ++ 14 ให้ตัวอย่างรหัสต่อไปนี้ด้านล่างนี้เป็นความเข้าใจปัจจุบันของฉันในสิ่งที่คอมไพเลอร์จะสร้าง กรณีที่ 1: การดักจับตามค่า / การดักจับเริ่มต้นตามค่า int x = 6; auto lambda = [x]() { std::cout << x << std::endl; }; จะถือเอา: class __some_compiler_generated_name { public: __some_compiler_generated_name(int x) : __x{x}{} void operator()() const { std::cout << __x << std::endl;} private: int __x; …
9 c++  lambda  c++14  move 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.