«c++11» 태그된 질문

C ++ 11로 컴파일해야하는 코드에이 태그를 사용하십시오 (C ++ 14 이상에서 도입 된 기능을 사용하지 않음).

2
C ++에서 [=]은 무엇을 의미합니까?
나는 무엇을 알고 싶어 [=]? 다음은 간단한 예입니다. template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); []대신 코드가 어떻게 작동 [=]합니까? 나는 가정한다 std::function<T (T)> (T)인수 및 반환 …
93 c++  c++11  lambda 


1
+를 사용하여 람다에 대한 함수 포인터 및 std :: function에 대한 모호한 오버로드 해결
다음 코드에서는에 대한 첫 번째 호출 foo이 모호하므로 컴파일에 실패합니다. 두 번째 +는 람다 앞에 추가 된 함수 포인터 오버로드로 해결됩니다. #include <functional> void foo(std::function<void()> f) { f(); } void foo(void (*f)()) { f(); } int main () { foo( [](){} ); // ambiguous foo( +[](){} ); // not ambiguous …

3
Lambda의 명시 적 반환 유형
이 코드 (VS2010)를 컴파일하려고하면 다음 오류가 발생합니다. error C3499: a lambda that has been specified to have a void return type cannot return a value void DataFile::removeComments() { string::const_iterator start, end; boost::regex expression("^\\s?#"); boost::match_results<std::string::const_iterator> what; boost::match_flag_type flags = boost::match_default; // Look for lines that either start with a hash (#) …

3
벡터가 커질 때 이동 의미론을 적용하는 방법은 무엇입니까?
나는이 std::vector특정 클래스의 객체를 A. 클래스는 사소하지 않으며 복사 생성자 와 이동 생성자가 정의되어 있습니다. std::vector<A> myvec; A객체로 벡터를 채우면 (예 :) 벡터의 요소의 새 사본을 인스턴스화 myvec.push_back(a)하는 복사 생성자 A( const A&)를 사용하여 벡터의 크기가 커집니다 . 클래스의 이동 생성자가 A대신 사용 되도록 어떻게 든 강제 할 수 있습니까 …

4
shared_ptr <Derived>를 shared_ptr <Base>로 전달
shared_ptr파생 유형을 shared_ptr기본 유형 을 취하는 함수 에 전달하는 가장 좋은 방법은 무엇입니까 ? 나는 일반적으로 shared_ptr불필요한 사본을 피하기 위해 s를 참조로 전달합니다 . int foo(const shared_ptr&lt;bar&gt;&amp; ptr); 하지만 다음과 같은 작업을 시도하면 작동하지 않습니다. int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); 나는 사용할 수있다 foo(dynamic_pointer_cast&lt;Base, Derived&gt;(bar)); …

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


4
후행 반환 유형 구문 스타일이 새로운 C ++ 11 프로그램의 기본값이되어야합니까? [닫은]
닫힘 . 이 질문은 의견 기반 입니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 삼년 전에 . 이 질문 개선 C ++ 11은 새로운 함수 구문을 지원합니다. auto func_name(int x, int y) -&gt; …

3
Constexpr 대 매크로
매크로 사용을 선호하는 곳과 constexpr을 선호해야하는 곳 입니까? 기본적으로 동일하지 않습니까? #define MAX_HEIGHT 720 vs constexpr unsigned int max_height = 720;
92 c++  c++11  macros  constexpr 

2
연산자 우선 순위 외에 추가 괄호는 언제 영향을 미칩니 까?
C ++의 괄호는 여러 위치에서 사용됩니다. 예를 들어 연산자 우선 순위를 재정의하는 함수 호출 및 그룹화 표현식에서. 그렇다 불법 여분의 괄호에서 (예 : 주변에 함수 호출 인수 목록과 같은), C의 일반적인 - 그러나 absolute-하지 규칙 ++ 것입니다 추가 괄호 해치지 않을 : 5.1 기본 표현식 [expr.prim] 5.1.1 일반 [expr.prim.general] 6 …

4
cc1plus : 오류 : g ++에서 인식 할 수없는 명령 줄 옵션“-std = c ++ 11”
g++및 -std=c++11또는 c++0x플래그를 사용하여 컴파일하려고합니다 . 그러나이 오류가 발생합니다. cc1plus: error: unrecognized command line option "-std=c++11" g ++-버전 g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY …



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

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