«c++20» 태그된 질문

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

28
현대 C ++ 11 / C ++ 14 / C ++ 17 및 미래 C ++ 20에서 문자열로 열거
다른 모든 유사한 질문과 달리이 질문은 새로운 C ++ 기능 사용에 관한 것입니다. 2008 년 씨 C ++ 열거 형을 문자열로 변환하는 간단한 방법이 있습니까? 2008 년 씨 C에서 열거 형 유형의 변수를 문자열로 사용하는 쉬운 방법은 무엇입니까? 2008 년 C ++ C ++ 열거 형을 문자열에 쉽게 매핑하는 방법 …
354 c++  string  enums  c++17  c++20 


3
C ++에서 <=> 연산자는 무엇입니까?
C ++ 연산자 에 대해 배우려고하는 동안 cppreference.com 에서 이상한 비교 연산자를 발견했습니다 . * 는 다음과 같습니다. "글쎄, 이것이 C ++에서 일반적인 연산자라면, 그것들을 더 잘 배우는 것"이라고 생각했습니다. 그러나이 수수께끼를 설명하려는 모든 시도는 실패했습니다. 여기에서도 스택 오버플로에서 검색에 운이 없었습니다. &lt;=&gt; 과 C ++ 사이에 연결이 있습니까? 그리고이 …

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

2
C ++ 20은 파일에 저장되는 소스 코드를 요구합니까?
그러나 약간 이상한 질문이지만 올바르게 기억한다면 C ++ 소스 코드는 파일을 저장할 파일 시스템이 필요하지 않습니다. 카메라를 통해 손으로 쓴 종이를 스캔하는 컴파일러가 있으면이를 준수 할 수 있습니다. 실제로 그다지 의미가 없지만. 그러나 C ++ 20은 이제 file_name. 이제 소스 코드가 항상 파일에 저장되어야 함을 의미합니까?


3
C ++ 20에서 코 루틴은 무엇입니까?
코 루틴이란? C ++ 20? "Parallelism2"또는 / 및 "Concurrency2"(아래 이미지 참조)와 어떤 점에서 다른가요? 아래 이미지는 ISOCPP에서 가져온 것입니다. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

2
std :: ssize ()가 C ++ 20에 도입 된 이유는 무엇입니까?
C ++ 20std::ssize() 은 아래와 같이 무료 기능을 도입했습니다 . template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; 가능한 구현은를 사용하여 cl ass C 멤버 함수의 static_cast반환 값을 서명 된 대응 항목 으로 변환하는 것 같습니다 .size() size()C 의 멤버 함수는 항상 음이 아닌 값을 반환 하기 …
99 c++  stl  unsigned  signed  c++20 

4
C ++ 14에 이미 제네릭 람다가있는 경우 C ++ 20에 도입 된 템플릿 람다의 필요성은 무엇입니까?
C ++ 14 다음과 같이 작성할 수있는 일반 람다를 도입했습니다. auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hello", "world"); 이 일반적인 람다 func는 템플릿 함수 func가 작동 하는 것처럼 작동 한다는 것은 매우 분명합니다 . C ++위원회가 …

2
C ++ 20까지 int 정의되지 않은 동작에 malloc을 사용하고 있습니다.
다음 코드는 C ++ 20까지 정의되지 않은 동작이 있다고 들었습니다. int *p = (int*)malloc(sizeof(int)); *p = 10; 사실인가요? 인수는 int값을 할당하기 전에 객체 의 수명이 시작되지 않는다는 것입니다 ( P0593R6 ). 문제를 해결하려면 배치를 new사용해야합니다. int *p = (int*)malloc(sizeof(int)); new (p) int; *p = 10; 개체의 수명을 시작하기 위해 간단한 …

3
C ++ 20에서 사용자 정의 우주선 연산자 구현에 대해 동등 연산자가 정의되지 않음
&lt;=&gt;C ++ 20 의 새로운 우주선 연산자 로 이상한 행동을하고 있습니다. 와 함께 Visual Studio 2019 컴파일러를 사용하고 /std:c++latest있습니다. 이 코드는 예상대로 정상적으로 컴파일됩니다. #include &lt;compare&gt; struct X { int Dummy = 0; auto operator&lt;=&gt;(const X&amp;) const = default; // Default implementation }; int main() { X a, b; a …

2
많은 표준 라이브러리 유형의 C ++ 20에서 operator! =가 제거 된 이유는 무엇입니까?
에 따르면 cppreference , std::type_info::operator!=C ++ (20)로 제거됩니다, 그러나, std::type_info::operator==분명히 남아있다. 뒤에 추론은 무엇입니까? 나는 불평등을 무의미하게 비교하는 데 동의하지만 평등을 비교하는 것은 무의미 할 것입니다. 마찬가지로, operator!=예컨대 용기를 포함하는 많은 다른 표준 라이브러리 유형의 std::unordered_map::operator!=및 std::unordered_set::operator!=cppreference에 따른 C ++ 20에서 제거 될 것이다. 작성 if(!(id1 == id2))해야하는 if(id1 != …


2
C ++ 20의 지정된 이니셜 라이저
지정된 초기화 프로그램 인 C ++ 20 기능 중 하나에 대한 질문이 있습니다 (이 기능에 대한 자세한 정보는 here ). #include &lt;iostream&gt; constexpr unsigned DEFAULT_SALARY {10000}; struct Person { std::string name{}; std::string surname{}; unsigned age{}; }; struct Employee : Person { unsigned salary{DEFAULT_SALARY}; }; int main() { std::cout &lt;&lt; std::boolalpha …

3
명시 적 (bool)의 유스 케이스는 무엇입니까
C ++ 20은 생성시 명시 적 으로 여부를 컴파일 타임에 조건부로 선택하는 명시 적 (bool) 을 도입했습니다 . 아래는 내가 발견 한 예입니다 여기가 . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template &lt;typename T&gt; explicit(!std::is_integral_v&lt;T&gt;) foo(T) {} }; foo a = 123; // …
24 c++  c++20  explicit 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.