«c++11» 태그된 질문

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

7
'auto'키워드를 명시 적으로 작성해야하는 이유는 무엇입니까?
저는 C ++ 98에서 C ++ 11로 이동하고 있으며 auto키워드에 익숙해 졌습니다. auto컴파일러가 유형을 자동으로 추론 할 수 있는지 명시 적으로 선언해야하는 이유가 궁금 합니다. 나는 C ++가 강력한 형식의 언어라는 것을 알고 있으며 이것은 규칙이지만 명시 적으로 변수를 선언하지 않고는 동일한 결과를 얻을 수 없었 auto습니까?
80 c++  c++11  auto 

12
C ++ 11에서 사용되지 않는 매개 변수
C ++ 03 및 이전 버전에서는 사용되지 않는 매개 변수에 대한 컴파일러 경고를 비활성화하기 위해 일반적으로 다음 코드를 사용합니다. #define UNUSED(expr) do { (void)(expr); } while (0) 예를 들면 int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } 그러나 매크로는 C ++의 모범 사례가 아닙니다. C ++ 11 …


5
RValue Reference (&&)의 반환이 유용한 경우가 있습니까?
함수 가 RValue 참조를 반환해야하는 이유가 있습니까? 기술, 트릭, 관용구 또는 패턴? MyClass&& func( ... ); 일반적 으로 참조 를 반환 하는 위험을 알고 있지만 때때로 우리는 어쨌든 그렇게합니다. 그렇지 않습니까? T& T::operator=(T)관용적 인 예입니다. 하지만 T&& func(...)어때요? 그렇게함으로써 얻을 수있는 일반적인 장소가 있습니까? 클라이언트 코드와 비교하여 라이브러리 또는 API …


6
Variadic 템플릿 팩 확장
가변 템플릿과 기능을 배우려고합니다. 이 코드가 컴파일되지 않는 이유를 이해할 수 없습니다. template<typename T> static void bar(T t) {} template<typename... Args> static void foo2(Args... args) { (bar(args)...); } int main() { foo2(1, 2, 3, "3"); return 0; } 컴파일 할 때 오류와 함께 실패합니다. 오류 C3520 : 'args':이 컨텍스트에서 매개 …

6
CMake로 컴파일러의 C ++ 11 지원을 감지하는 방법
컴파일러가 C ++ 11을 지원하는지 여부를 CMake가 자동으로 감지하도록하는 방법이 있습니까? 컴파일러가 C ++ 11을 지원하지 않기 때문에 코드가 컴파일되지 않는다는 것을 CMake 실행 중에 사용자에게 알리는 것이 좋습니다. 지금은 C ++ 11 플래그를 설정했습니다. 그러나 컴파일러가이를 지원하지 않는 경우 사용자는 CMake 실행 중에 오류 대신 컴파일 오류를받습니다. Perfect는 find_package(). …
78 c++  c++11  cmake 

10
원시 메모리에 대한보기로 std :: vector 사용
어느 시점에서 정수 및 크기 배열에 대한 원시 포인터를 제공하는 외부 라이브러리를 사용하고 있습니다. 이제 std::vector원시 포인터로 값을 액세스하지 않고 해당 값에 액세스하고 수정하는 데 사용하고 싶습니다 . 요점을 설명하는 명확한 예는 다음과 같습니다. size_t size = 0; int * data = get_data_from_library(size); // raw data from library {5,3,2,1,4}, size …
71 c++  c++11  vector  stdvector 

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

3
C ++ 선언과 괄호-왜?
주제는 이전 에 논의 되었지만 중복 된 것은 아닙니다. 누군가 decltype(a)와와 의 차이점에 대해 물을 때 decltype((a))일반적인 대답은 a변수 (a)입니다. 이 답변이 만족스럽지 않습니다. 먼저 a표현도 있습니다. 기본 표현식 의 옵션 에는 다음이 포함됩니다. ( 표현 ) 아이디 표현 더 중요한 것은 decltype에 대한 문구는 괄호를 매우 명확하게 고려한다는 것입니다 …

6
std :: vector :: swap 메소드를 사용하여 C ++에서 두 개의 다른 벡터를 바꾸는 것이 안전합니까?
다음 코드가 있다고 가정하십시오. #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } 벡터가 std::string아직 클래스 가 아니라고 상상해보십시오 . std::vector<Widget> WidgetVector; std::vector<Widget2> Widget2Vector; 이 std::vector::swap방법으로 …
30 c++  c++11  vector  stdvector  swap 

3
C ++에서 두 번째 템플릿 인수를 추측하지 못하게하려면 어떻게해야합니까?
그 안에 어딘가에 다음 코드가 있는 C ++ 라이브러리 ( strf )를 사용하고 있습니다. namespace strf { template <typename ForwardIt> inline auto range(ForwardIt begin, ForwardIt end) { /* ... */ } template <typename Range, typename CharT> inline auto range(const Range& range, const CharT* sep) { /* ... */ } } …


3
전역 변수에 대한 참조에서 람다 함수 변경 가능 캡처의 동작 차이
람다를 사용하여 가변 키워드로 전역 변수에 대한 참조를 캡처 한 다음 람다 함수의 값을 수정하면 컴파일러마다 결과가 다릅니다. #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() { int &m = n; return [m] () mutable -> int { m += 123; return m; }; } int main() { …

2
실제로 어떤 <random>의 난수 엔진을 사용해야합니까? std :: mt19937?
&lt;random&gt;실제 프로그램에서 C ++ 기능 을 사용하려고한다고 가정합니다 ( "실제"에 대한 정의 – 여기서 제약은이 질문의 일부 임). 대략 다음과 같은 코드가 있습니다. int main(int argc, char **argv) { int seed = get_user_provided_seed_value(argc, argv); if (seed == 0) seed = std::random_device()(); ENGINE g(seed); // TODO: proper seeding? go_on_and_use(g); } 내 …
21 c++  c++11  random 

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