«c++11» 태그된 질문

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

8
언제 실제로 noexcept를 사용해야합니까?
이 noexcept키워드는 많은 함수 시그니처에 적절하게 적용될 수 있지만 실제로 키워드를 언제 사용해야하는지 잘 모르겠습니다. 지금까지 읽은 내용을 기반으로 마지막 순간 추가는 noexcept이동 생성자가 던질 때 발생하는 몇 가지 중요한 문제를 해결하는 것으로 보입니다. 그러나 여전히 실용적인 질문에 대한 만족스러운 답변을 제공 할 수 없어서 noexcept처음부터 더 자세히 읽을 수 …

6
std :: forward를 사용하는 주요 목적은 무엇이며 어떤 문제를 해결합니까?
완벽한 전달에서는 std::forward명명 된 rvalue 참조 t1와 t2명명되지 않은 rvalue 참조 로 변환하는 데 사용됩니다 . 그 목적은 무엇입니까? lvalue로 & 를 inner남겨두면 호출 된 함수에 어떤 영향을 미칩니 까?t1t2 template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
C ++ 11 rvalue 및 이동 의미 론적 혼란 (return statement)
rvalue 참조를 이해하고 C ++ 11의 의미를 이동하려고합니다. 이 예제들 사이의 차이점은 무엇이며 어떤 것들은 벡터 복사를하지 않을 것입니까? 첫 번째 예 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); 두 번째 예 std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = …


6
unique_ptr 인수를 생성자 또는 함수에 어떻게 전달합니까?
C ++ 11에서 의미를 옮기는 것이 처음 unique_ptr이며 생성자 또는 함수에서 매개 변수 를 처리하는 방법을 잘 모릅니다 . 이 클래스 자체를 참조하십시오. #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); } protected : Base::UPtr next; }; …


10
프리 프린트 C ++ STL 컨테이너
이 게시물 끝에 업데이트 내용을 기록해 두십시오. 업데이트 : 이 라이브러리의 GitHub 에 공개 프로젝트를 만들었습니다 ! 를 통해 모든 STL 컨테이너를 예쁘게 인쇄하는 단일 템플릿을 원합니다 operator<<. 의사 코드에서 다음과 같은 것을 찾고 있습니다. template<container C, class T, String delim = ", ", String open = "[", String close …

9
std :: promise 란 무엇입니까?
나는 C ++ 11 개의와 매우 잘 알고 std::thread, std::async및 std::future구성 요소 (예 : 볼 이 대답 ) 솔직하다. 그러나 나는 std::promise그것이 무엇인지, 무엇을하는지, 어떤 상황에서 가장 잘 사용되는지 파악할 수 없습니다 . 표준 문서 자체에는 클래스 개요 이외의 많은 정보가 포함되어 있지 않으며 just :: thread 도 포함하지 않습니다 …

1
C ++ 템플릿 typedef
수업이 있습니다 template<size_t N, size_t M> class Matrix { // .... }; 크기 N과 1에 해당 typedef하는 Vector(열 벡터) 를 만드는 a 를 만들고 Matrix싶습니다. typedef Matrix<N,1> Vector<N>; 컴파일 오류가 발생합니다. 다음은 비슷한 것을 만들지 만 정확히 내가 원하는 것은 아닙니다. template <size_t N> class Vector: public Matrix<N,1> { }; …
368 c++  templates  c++11  typedef 

5
함수에서 unique_ptr 반환
unique_ptr<T>복사 구성을 허용하지 않고 대신 이동 의미를 지원합니다. 그러나 unique_ptr<T>함수에서를 반환하고 반환 된 값을 변수에 할당 할 수 있습니다 . #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( p ); // 2 } int main() { unique_ptr<int> …
367 c++  c++11  unique-ptr 

5
g ++로 C ++ 11 컴파일
C ++ 컴파일러를 C ++ 11로 업데이트하려고합니다. 나는 비트를 검색하고 난 내가 플래그를 사용해야한다는 결론에 도달했다 -std=c++0x거나 -std=gnu++0x,하지만 난 플래그에 대한 많은 것들을 모른다. 누구든지 나를 도울 수 있습니까? (우분투 12.04를 사용하고 있습니다.) 다음은 C ++ 11 (예 : 배열)에 포함 된 라이브러리를 사용하려고 할 때 컴파일러에서 발생하는 오류입니다. #include …
367 c++  c++11  g++  flags 

14
CMake에서 C ++ 11을 어떻게 활성화합니까?
CMake 생성 makefile을 실행하여 프로그램을 컴파일하려고하면 오류가 발생합니다. C ++ 98 모드에서는 루프 기반 범위가 지원되지 않습니다. 나는 추가하는 시도 add_definitions(-std=c++0x)내에 CMakeLists.txt, 그러나 그것은 도움이되지 않았다. 나는 이것을 시도했다. if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() 내가 할 때 g++ --version, 나는 얻는다 : g ++ (우분투 / 리나로 4.6.1-9 우분투 3) 4.6.1 또한 …
356 c++11  cmake 

6
std :: unique_lock <std :: mutex> 또는 std :: lock_guard <std :: mutex>?
На этот вопрос есть ответы на 스택 오버플로 на русском : Чем 표준 : unique_lock отличается от 표준 : lock_guard? 두 가지 사용 사례가 있습니다. A. 두 스레드의 액세스를 대기열에 동기화하고 싶습니다. B. 두 스레드의 액세스를 큐에 동기화하고 스레드 중 하나가 다른 스레드에 의해 큐에 저장 될 내용을 기다리는 조건 …

14
C ++ 11에서 언제 constexpr 기능을 사용해야합니까?
"항상 5를 반환하는 함수"를 갖는 것이 "함수 호출"의 의미를 깨뜨 리거나 희석시키는 것 같습니다. 이유가 있거나이 기능이 필요하거나 C ++ 11에 있지 않아야합니다. 왜 거기에 있습니까? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife = 42; // constexpr-function: constexpr int MeaningOfLife () { return 42; } 리터럴 값을 …
337 c++  c++11  constexpr 


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