«c++14» 태그된 질문

C ++ 14는 2014 년에 승인 된 C ++ 표준의 이름입니다. 이전 C ++ 11 표준을 기반으로 빌드되어 핵심 언어 및 표준 라이브러리를 개선하고 일부 기능을 추가합니다.

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 ++위원회가 …

6
error :: make_unique는 'std'의 구성원이 아닙니다.
코드 검토에 게시 된 다음 스레드 풀 프로그램을 컴파일하여 테스트하려고합니다. /codereview/55100/platform-independant-thread-pool-v4 하지만 오류가 발생합니다. threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: error: expected primary-expression before ‘>’ token auto package_ptr = …

2
한 명의 회원과 만 조합을 사용하는 목적은 무엇입니까?
seastar 소스 코드를 읽을 때 tx_side멤버가 하나 뿐인 공용 구조체가 있음을 알았습니다 . 이것은 특정 문제를 다루기위한 해킹입니까? 참고로 tx_side아래 구조를 붙여 넣습니다 . union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a) aa; } struct aa { std::deque<work_item*> pending_fifo; } a; } _tx;
89 c++  c++14  unions 

5
람다의 크기가 1 바이트 인 이유는 무엇입니까?
나는 C ++에서 일부 람다의 메모리로 작업하고 있지만 크기에 약간 의아해합니다. 내 테스트 코드는 다음과 같습니다. #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout << sizeof(f) << std::endl; } 여기에서 실행할 수 있습니다 …
89 c++  c++11  lambda  c++14  sizeof 

3
const void 란 무엇입니까?
std::is_void상태에 대한 설명 : T가 void, const void, volatile void 또는 const volatile void 형식 인 경우 true와 동일한 멤버 상수 값을 제공합니다 . 그런 다음 무엇을 할 수있는 const void, 또는 volatile void? 이 답변 은 const void반환 유형이 유효하지 않을 것이라고 말합니다 (그러나 VC ++ 2015에서 컴파일됩니다) const …
89 c++  c++11  c++14 

3
기본값, 값 및 제로 초기화 혼란
값 및 기본값 및 제로 초기화에 대해 매우 혼란 스럽습니다. 특히 다른 표준 C ++ 03 및 C ++ 11 (및 C ++ 14 ) 을 위해 시작될 때 . 나는 누군가가 도움을 줄 수 있다면 많은 사용자에게 도움이 될 것이므로 더 일반적으로 만들기 위해 Value- / Default- / Zero- …
89 c++  c++11  c++14  c++03  c++98 

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

1
원시 스토리지를 사용할 때 EBO를 에뮬레이트하는 방법은 무엇입니까?
빈 기본 최적화를 활용하기 위해 비어있을 수있는 임의 유형 (클래스 유형일 수도 있고 아닐 수도 있음)의 객체를 저장하는 저수준 제네릭 유형을 구현할 때 사용하는 구성 요소가 있습니다 . template <typename T, unsigned Tag = 0, typename = void> class ebo_storage { T item; public: constexpr ebo_storage() = default; template < …
79 c++  c++14 

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

1
C ++ 14와 C ++ 17에서 std :: atomic 생성자가 다르게 동작하는 이유
C ++ 11로 프로젝트를 진행 중이며 다음 코드를 시도했습니다. #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } 컴파일러 오류가 발생합니다 error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const std::__atomic_base<_IntTp>&) [with _ITp = int]' std::atomic_int idx = 1; ^ C ++ 14에서도 같은 결과가 나옵니다. …
19 c++  c++14  c++17  stdatomic 

3
Lambda 클로저 lvalue는 rvalue 참조 매개 변수로 전달 될 수 있습니다.
lvalue람다 클로저는 항상 rvalue함수 매개 변수 로 전달 될 수 있다는 것을 알았습니다 . 다음의 간단한 데모를 참조하십시오. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: …

4
연속 열거 형 C ++ 11
열거 형이 연속적 인 경우 C ++ 11을 확인하는 방법이 있습니까? 열거 형 값을 제공하지 않는 것이 유효합니다. C ++ 14, C ++ 17 또는 C ++ 20에 유형 특성과 같은 기능이 열거 형이 연속적인지 확인할 수 있습니까? 이것은 static_assert에서 사용됩니다. 작은 예는 다음과 같습니다. enum class Types_Discontinuous { A …
17 c++  c++11  c++14  c++17  c++20 

3
함수가 정의 된 유형에 대해서만 함수 템플릿 내에서 함수 실행
입력 할 때 다양한 유형을 취하는 함수 템플릿이 있습니다. 이러한 유형 중 하나만 getInt()기능이 있습니다. 따라서 코드가 해당 유형에 대해서만 함수를 실행하기를 원합니다. 해결책을 제안하십시오. 감사 #include <type_traits> #include <typeinfo> class X { public: int getInt(){ return 9; } }; class Y{ }; template<typename T> void f(T& v){ // error: …

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

1
변수 템플릿을 템플릿 템플릿 인수로 전달할 수 있습니까?
다음의 무의미한 예제는 컴파일되지 않지만 변수 템플릿을 템플릿 템플릿 인수로 전달하는 다른 방법이 있습니까? template<typename T> constexpr auto zero = T{0}; template<typename T, template<typename> auto VariableTemplate> constexpr auto add_one() { return VariableTemplate<T> + T{1}; } int main() { return add_one<int, zero>(); } 컴파일러 탐색기를 사용해보십시오

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