«c++17» 태그된 질문

C ++ 17은 2017 년에 승인 된 C ++ 표준의 이름입니다. 이전 C ++ 14 표준을 기반으로하여 핵심 언어 및 표준 라이브러리를 개선하고 몇 가지 새로운 언어 기능을 추가합니다.

2
C ++ 17을 사용하여 파일 크기를 바이트 단위로 가져 오는 방법
특정 운영 체제에 대해 알아야 할 함정이 있습니까? 이 질문의 중복 ( 1 , 2 , 3 , 4 , 5 )이 많이 있지만 수십 년 전에 답변되었습니다. 오늘날 이러한 많은 질문에서 매우 높은 투표를받은 답변은 잘못된 것입니다. .sx의 다른 (이전 QA) 메서드 stat.h (래퍼 sprintstatf ), syscall 사용 tellg …

6
C ++ 17에서 std :: make_unique를 사용하는 이유는 무엇입니까?
내가 이해하는 한, C ++ 14 std::make_unique는 매개 변수 평가 순서가 지정되지 않아 안전하지 않았기 때문에 도입되었습니다 . f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (설명 : 평가가 먼저 원시 포인터에 대한 메모리를 할당 한 다음 호출 g()하고 std::unique_ptr생성 전에 예외가 throw 되면 메모리가 누출됩니다.) 호출 std::make_unique은 호출 순서를 제한하는 방법이므로 …
96 c++  c++17  unique-ptr 


4
실험적 :: 파일 시스템 링커 오류
실제로 gcc 6.0 내에서 개발 책임자 인 새로운 C ++ 1z 기능을 사용하려고합니다. 이 작은 예를 들어 보면 : #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; } 나는 얻었다 : / opt / …
94 c++  gcc  c++17 

3
C ++에서 형식 정보는 언제 역방향으로 흐르나요?
방금 Stephan T. Lavavej CppCon 2018가 "Class Template Argument Deduction (클래스 템플릿 인수 추론)"에 대해 이야기하는 것을 보았습니다. 어느 시점에서 그는 우연히 다음과 같이 말합니다. C ++에서 유형 정보는 거의 역방향으로 흐르지 않습니다. 한두 가지 경우가 있기 때문에 "거의"라고 말해야했습니다 . 그가 어떤 사건을 언급하고 있는지 알아 내려고했지만 나는 아무것도 …

1
보증 복사 제거는 어떻게 작동합니까?
2016 Oulu ISO C ++ 표준 회의에서 단순화 된 값 범주를 통한 복사 제거 보장 이라는 제안 이 표준위원회에 의해 C ++ 17로 투표되었습니다. 보장 된 복사 제거는 정확히 어떻게 작동합니까? 복사 제거가 이미 허용 된 일부 경우를 포함합니까, 아니면 복사 제거를 보장하기 위해 코드를 변경해야합니까?

4
최신 C ++의 실험적 기능은 장기 프로젝트에서 신뢰할 수 있습니까?
현재 C ++ 11 / 14를 사용하는 프로젝트가 있지만 std::filesystemC ++ 17에서만 사용할 수 있는와 같은 것이 필요 하므로 현재 사용할 기회가 없습니다. 그러나 현재 컴파일러에서 std::experimental::filesystem. 미래에 다음과 같은 것을 추가 할 수 있다고 가정하고 실험적 기능을 사용하는 것이 좋은 생각입니까? #ifdef CXX17 //if this is C++17 std::filesystem::something ...; …

1
템플릿 추론 가이드 란 무엇이며 언제 사용해야합니까?
C ++ 17 표준은 "템플릿 추론 가이드"를 도입합니다. 이 표준 버전에 도입 된 생성자에 대한 새로운 템플릿 인수 추론과 관련이 있다고 생각하지만, 그것이 무엇인지, 무엇을위한 것인지에 대한 간단한 FAQ 스타일의 설명은 아직 보지 못했습니다. C ++ 17의 템플릿 추론 가이드 란 무엇입니까? 왜 (그리고 언제) 그것들이 필요합니까? 어떻게 신고합니까?

1
내가 [[fallthrough]]를 사용해도 GCC가 폴 스루에 대해 경고하는 이유는 무엇입니까?
다음 코드에서는 [[fallthrough]]C ++ 1z 의 표준 속성을 사용하여 폴스 루가 필요함을 문서화합니다. #include <iostream> int main() { switch (0) { case 0: std::cout << "a\n"; [[fallthrough]] case 1: std::cout << "b\n"; break; } } GCC 7.1에서는 코드가 오류없이 컴파일됩니다. 그러나 컴파일러는 여전히 오류에 대해 경고합니다. warning: this statement may …

3
올바른 주소와 유형을 가진 포인터가 C ++ 17 이후로 여전히 유효한 포인터입니까?
( 이 질문과 답변을 참조하십시오 .) C ++ 17 표준 이전에는 [basic.compound] / 3 에 다음 문장이 포함되었습니다 . 유형 T의 객체가 주소 A에있는 경우 값이 주소 A 인 cv T * 유형의 포인터는 값을 획득 한 방법에 관계없이 해당 객체를 가리 킵니다. 그러나 C ++ 17 이후로이 문장은 제거되었습니다 …

2
구조화 된 바인딩으로 std :: ignore?
전주곡: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z는 구조화 된 바인딩에 대한 구문을 도입하여 int a, b, c; std::tie(a, b, c) = f(); 뭔가 auto [a, b, c] = f(); 그러나 특정 구성 요소를 무시 std::tie하도록 지정할 수도 있습니다 std::ignore. 예 : std::tie(a, b, std::ignore, …

6
"if"문에서 변수 초기화
나는 C ++ 17에서 if다음과 같은 문 에서 변수를 초기화 할 수 있다는 것을 읽었습니다. if (int length = 2; length == 2) //execute something 대신에 int length = 2; if (length == 2) //do something 더 짧지 만 코드 가독성에 영향을 미치며 (특히이 새로운 기능을 모르는 사람들에게) 대규모 소프트웨어 …
80 c++  c++17 


3
std :: hardware_destructive_interference_size 및 std :: hardware_constructive_interference_size 이해
C ++ 17 추가 std::hardware_destructive_interference_size및std::hardware_constructive_interference_size . 첫째, L1 캐시 라인의 크기를 얻는 이식 가능한 방법이라고 생각했지만 이는 지나치게 단순화 된 것입니다. 질문 : 이러한 상수는 L1 캐시 라인 크기와 어떤 관련이 있습니까? 사용 사례를 보여주는 좋은 예가 있습니까? 둘 다 정의됩니다 static constexpr. 바이너리를 빌드하고 캐시 라인 크기가 다른 다른 …

5
람다 자체에서 C ++ 람다 함수의 주소를 얻는 방법은 무엇입니까?
람다 함수의 주소를 얻는 방법을 알아 내려고 노력 중입니다. 다음은 샘플 코드입니다. []() { std::cout << "Address of this lambda function is => " << ???? }(); 변수에서 람다를 캡처하고 주소를 인쇄 할 수 있다는 것을 알고 있지만이 익명 함수가 실행될 때 수행하고 싶습니다. 더 간단한 방법이 있습니까?
53 c++  c++11  lambda  c++14  c++17 

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