«c++-concepts» 태그된 질문

5
왜 요구가 필요한가?
C ++ 20 개념의 모퉁이 중 하나는 작성해야하는 특정 상황이 있다는 것 requires requires입니다. 예를 들어, [expr.prim.req] / 3 의이 예는 다음과 같습니다 . 또한 require-expression 은 require-clause ([temp])에서 템플릿 인수에 대한 임시 제한 조건을 작성하는 방법으로 다음과 같이 사용될 수 있습니다. template<typename T> requires requires (T x) { x …
161 c++  c++-concepts  c++20 


3
C ++ 20 개념 : 템플릿 인수가 여러 개념에 적합한 경우 어떤 템플릿 전문화가 선택됩니까?
주어진 : #include <concepts> #include <iostream> template<class T> struct wrapper; template<std::signed_integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "signed_integral" << std::endl; } }; template<std::integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "integral" << std::endl; } }; int main() { wrapper<int> …

1
`equality_comparable_with`에는`common_reference`가 필요합니까?
개념equality_­comparable_with<T, U> 유형의 객체 선언하고자 T하고 U서로 동일하게 비교 될 수 있으며,이 경우,이 예상 된 의미를 갖는다. 괜찮아. 그러나이 개념도 common_reference_t<T&, U&>존재 해야 합니다. 주요 자극 common_reference과 그 기능은 프록시 반복자 를 가능하게reference 하고 value_type그러한 반복자 와 의 관계를 나타내는 장소를 갖는 것 같습니다 . 훌륭하지만 ... a T와 a …

1
개념 TS 검사는 개인 액세스 수정자를 무시합니다.
RandomAccessIterator를 리턴하는 시퀀스가 ​​시작 / 종료되었거나 operator []가 정의되어 있고 void가 아닌 유형의 값을 리턴한다는 색인 가능한 개념을 작성하려고합니다. Stroustrup의 기사 에서 Sequence 개념에 대한 아이디어를 사용 하여 다음과 같이 보강했습니다. template <class T> concept bool Indexable = Sequence<T> || requires(T t, size_t n) { { t[n] } -> NotVoid; …
10 c++  c++-concepts 

1
엔 클로징 범위의 변수를 "캡처"하기 위해식이 필요합니까?
다음 예제에서 함수 인수는 필수 표현식을 사용하여 표현식이 제대로 구성되어 있는지 테스트하는 데 사용됩니다. require 표현식은 인수를 취하지 않습니다. 함수 범위의 변수를 직접 사용합니다. #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires { v.resize(n); }) v.resize(n); } template<typename T> void Eziser(T &v, …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.