«c++20» 태그된 질문

C ++ 20은 C ++ 17 이후 C ++ 버전의 대상입니다. 이 태그는 C ++ 20 트랙의 C ++ 기능에 대한 질문에 C ++ 태그와 함께 사용해야합니다.

3
std :: array를 사용하는 std :: bit_cast
그의 최근 강연에서 "현대 C의 유형 말장난 ++" 티무르 Doumler는 말했다 그 std::bit_cast비트가 캐스팅에 사용할 수 없습니다 float에 unsigned char[4]C 스타일 배열은 함수에서 반환 할 수 없기 때문에. 우리는 std::memcpy비슷한 것을 reinterpret_cast<unsigned char*>(&f)[i]잘 정의 할 때 C ++ 23 (또는 그 이후 버전)을 사용 하거나 기다려야 합니다. C ++ 20에서 …

1
C ++에서 버전간에 표현식 유형이 변경된 이유는 무엇입니까?
C ++ 초안을 이해하기가 어려워서 C ++ 초안을 소화하기가 매우 어려워 다른 리소스를 선호하기 때문에 표현 유형 을 이해하려고 합니다. C ++ 버전 간의 표현 및 정의가 크게 변경되었습니다. 다음에서는 다음과 같은 초안을 참조합니다. C ++ 11 [ n3690 ] (최종 초안) C ++ 17 [ n4659 ] (최종 초안) …
13 c++  c++11  c++14  c++17  c++20 

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
템플릿 클래스에서 C ++ 20 클래스 외부 정의
C ++의 C ++ 20 표준까지 템플릿 클래스의 개인 멤버를 사용하는 클래스 외 연산자를 정의하려면 다음과 유사한 구문을 사용합니다. template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs, const Foo<T>& rhs); template <typename T> class Foo { public: constexpr Foo(T k) : mK(k) {} constexpr friend bool …
12 c++  templates  c++20 

1
캡처 할 수없는 람다는 표준에 따라 비어 있습니까?
템플릿 함수에서 다른 람다에서 빈 (캡처가없는) 람다를 식별하는 방법을 찾고 있습니다. 나는 현재 C ++ 17을 사용하고 있지만 C ++ 20 답변도 궁금합니다. 내 코드는 다음과 같습니다 template<typename T> auto func(T lambda) { // The aguments of the lambdas are unknown if constexpr (/* is captureless */) { // do …
12 c++  lambda  c++17  c++20 


1
Linux 패키지 관리자는 C ++ 20 모듈을 어떻게 처리합니까?
우리는 지금 2020 년에 있으며 오랫동안 기다려온 C ++ 모듈 기능과 함께 C ++ 20이 나옵니다. 그러나 CppCon에 대한 몇 가지 이야기를 본 후 C ++ 모듈이 이상한 장소에 있다는 것을 알았습니다. 특히 Linux 패키지 관리자 (pacman, apt, emerge 등)에게는 내가 배운 것에서 C ++ 모듈은 컴파일러에 따라 다름 Clang에서 …

2
개념을 함수에 전달
개념은 컴파일 타임 술어로 정의되므로 실제로 컴파일 타임 알고리즘에 이러한 술어를 재사용 할 수 있습니까? 예를 들어 튜플의 모든 유형이 개념을 준수하는지 확인할 수 있습니까? 내가 본 한, 어떤 식 으로든 개념을 함수에 전달하는 것은 불가능합니다.이 경우 이러한 경우에 템플릿을 사용하게됩니다. #include <type_traits> template<typename T> concept FloatLike = std::is_same_v<T, float>; …


4
부울이 아닌 반환 값과 동등 비교를 오버로드 할 때 C ++ 20의 변경 사항 또는 clang-trunk / gcc-trunk의 회귀가 변경됩니까?
다음 코드는 c ++ 17 모드에서 clang-trunk로 잘 컴파일되지만 c ++ 2a (다가오는 c ++ 20) 모드에서 중단됩니다. // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};} }; int main() { Meta res = …

1
span은 constexpr 일 수 있습니까?
std :: span의 모든 생성자는 constexpr로 선언되었지만 constexpr 컨텍스트에서 작동하도록 할 수는 없습니다. 아래의 constexpr을 주석 해제하면 컴파일 오류가 발생합니다. #include <array> #include <span> int main() { constexpr int carray[3] = { 0, 1, 2 }; constexpr std::array<int, 3> array{ 0, 1, 2 }; using S = std::span<const int, 3>; …
11 c++  constexpr  c++20 

1
C ++ 20 이후 할당 된 스토리지에서 포인터 산술이 허용됩니까?
C ++ 20 표준에서는 배열 유형이 암시 적 수명 유형이라고 합니다. 암시 적이 지 않은 수명 유형에 대한 배열을 암시 적으로 만들 수 있습니까? 이러한 배열의 암시 적 생성으로 인해 배열 요소가 생성되지 않습니까? 이 경우를 고려하십시오. //implicit creation of an array of std::string //but not the std::string elements: void …

1
std :: span에 비교 연산자가없는 이유는 무엇입니까?
/ / 일반 배열 등 std::span의 하위 영역에 대한 간단한 참조로 설계 되지 않았습니까 ? API에 비교 연산자를 포함시키기 위해 비교 연산자를 포함해서는 안됩니까? 배제에 대한 추론은 무엇입니까?std::vectorstd::array 참고 : 비교 연산자에 의해, 나도 전체 집합을 의미한다 ( <, <=, ...) 또는 우주선<=>
10 c++  std  c++20  std-span 

1
C ++ 20에서 뷰를 가진 컨테이너를 구성 할 수 있습니까?
C ++ 20 표준 버전으로 범위가 C ++에 제공됩니다. 내 질문 : 우리는 어떤 범위에서 (기존의) 표준 라이브러리 컨테이너를 만들 수 있습니까? 더 중요한 것은 레인지 뷰를 사용하는 것입니까? 예를 들면 다음과 같습니다. #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) { return x …
10 c++  c++20  range-v3 

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.