을 필요로 하는가? 다음 예에서왜 범위-V3 수율 내가 어떤 이유로 기능의 항복 가족이 클래스는 기본 작도 할 필요합니까, 이해하려고 노력하고 기본 생성자
는 vnums1 라인은 CNum는 기본 생성자가있는 경우에만 컴파일합니다. vnums2 행에는 기본 생성자가 필요하지 않습니다.
나는 비주얼 스튜디오 2017과 범위-V3-VS2015를 사용하고 있습니다. 고맙습니다!
#include <range/v3/all.hpp>
struct CNum
{
// CNum() = default;
explicit CNum(int num) : m_num(num) {}
int m_num;
};
int main()
{
auto ints = ranges::view::ints(0, 10);
// this compiles only of CNum has a default constructor
auto vnums1 = ints
| ranges::view::for_each([](int num) { return ranges::yield_if(num % 2, CNum(num)); })
| ranges::to_vector;
// this compiles even if CNum does not have a default constructor
auto vnums2 = ints
| ranges::view::remove_if([](int num) { return num % 2 == 0; })
| ranges::view::transform([](int num) { return CNum(num); })
| ranges::to_vector;
return 0;
}
좋습니다. 고맙습니다. 마이크로 소프트/레인지-V3-VS2015의 메인테이너 ericniebler/범위 - V3에서 새로운 변화를 따기되지 않습니다. 누구든지 VC++ 2017에서 최신 비트를 구할 수있는 방법에 대한 제안이 있습니까? – CodeAndLearn
는 슬프게도, 당신의 최선의 방법은 마이크로 소프트/레인지-V3-VS2015의 REPO 포크하고 변경 사항을 직접 확인하는 것입니다. –