ช่วงกำลังมาถึง C ++ ด้วยเวอร์ชันมาตรฐาน C ++ 20
คำถามของฉัน: เราจะสามารถสร้างคอนเทนเนอร์ไลบรารีมาตรฐาน (ปัจจุบัน) กับช่วงใด ๆ ได้หรือไม่ และที่สำคัญยิ่งกว่าด้วยมุมมองระยะไกล?
ตัวอย่างเช่นจะ:
#include <vector>
#include <iostream>
#include <ranges>
int main() {
auto sq = [](int x) { return x * x; };
std::vector<int> vec { 3, 4, 5 };
std::vector<int> squares { std::ranges::views::transform(vec, sq) };
for(auto i : squares) { std::cout << i << ' '; }
std::cout << std::endl;
}
เป็นโปรแกรมที่ถูกต้องซึ่งพิมพ์9 16 25
?
สิ่งนี้จะรวบรวมกับไลบรารี range-v3สำหรับสิ่งที่คุ้มค่า