«c++» 태그된 질문

C ++는 범용 프로그래밍 언어입니다. 원래 C에 대한 확장으로 설계되었으며 유사한 구문을 갖지만 이제는 완전히 다른 언어입니다. C ++ 컴파일러로 컴파일 된 코드에 대한 질문에이 태그를 사용하십시오. 특정 표준 개정 [C ++ 11], [C ++ 14], [C ++ 17] 또는 [C ++ 20] 등과 관련된 질문에 버전 별 태그를 사용하십시오.

10
C ++의 접근 자 메서드 (getter 및 setter)에 대한 규칙
C ++의 접근 자 메서드에 대한 몇 가지 질문이 SO에서 요청되었지만 문제에 대한 호기심을 충족시킬 수있는 사람은 없습니다. Stroustrup과 다른 유명한 프로그래머처럼 접근자가 많은 클래스를 나쁜 OO의 징후로 간주하기 때문에 가능한 한 접근자를 피하려고합니다. C ++에서는 대부분의 경우 클래스에 더 많은 책임을 추가하거나이를 피하기 위해 friend 키워드를 사용할 수 있습니다. …
78 c++  accessor  setter  getter 

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

10
std :: queue 반복
반복해야합니다 std::queue. www.cplusplus.com 말한다 : 기본적으로 특정 대기열 클래스에 대해 지정된 컨테이너 클래스가 없으면 표준 컨테이너 클래스 템플릿 deque가 사용됩니다. 그래서 어떻게 든 큐의 기본 deque에 가서 그것을 반복 할 수 있습니까?

7
C ++ 참조로 배열 전달
참조로 배열을 전달할 수 있습니까? void foo(double& *bar) 내 컴파일러가 아니오라고 말하는 것 같습니다. 왜? 참조로 배열을 전달하는 올바른 방법은 무엇입니까? 아니면 해결 방법? 내 메서드가 수정해야하고 나중에 검색해야하는 배열 인수가 있습니다. 또는이 배열을 잘 작동하는 클래스 멤버로 만들 수 있지만 코드의 다른 부분에는 많은 단점이 있습니다 (피하고 싶습니다). 감사합니다.

8
하드웨어 SIMD를 사용하지 않고 병렬로 1에서 병렬로 64 비트 정수에서 팩형 8 비트 정수 빼기 1 SWAR
64 비트 정수가있는 경우 8 개의 요소가있는 압축 된 8 비트 정수의 배열로 해석됩니다. 1한 요소의 결과가 다른 요소의 결과에 영향을 미치지 않고 오버플로를 처리하는 동안 각 팩형 정수에서 상수를 빼야합니다 . 나는이 코드를 가지고 있으며 작동하지만 각각의 8 비트 정수를 병렬로 빼고 메모리에 액세스하지 않는 솔루션이 필요합니다. x86에서는 psubb8 …
77 c++  c  bit-manipulation  simd  swar 

7
NULL 값을 0으로 대체 할 수 있습니까?
? NULL값의 대체물로 포인터 를 사용할 수 0있습니까? 아니면 그 일에 잘못된 것이 있습니까? 예를 들어, int i = NULL; 대체품 : int i = 0; 실험으로 다음 코드를 컴파일했습니다. #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } 산출: 0 실제로 그것은 나에게 완전히 정확한 …

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 

7
C ++에서 'new'및 'delete'가 더 이상 사용되지 않습니까?
다른 크기의 배열 선언과 관련된 퀴즈를 우연히 발견했습니다. 가장 먼저 떠 올린 것은 다음과 같이 new명령에 동적 할당을 사용해야한다는 것입니다 . while(T--) { int N; cin >> N; int *array = new int[N]; // Do something with 'array' delete[] array; } 그러나 솔루션 중 하나가 다음과 같은 경우를 허용한다는 것을 …

3
멀티 스레딩 프로그램이 최적화 모드에서 멈췄지만 -O0에서 정상적으로 실행 됨
다음과 같이 간단한 멀티 스레딩 프로그램을 작성했습니다. static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } 그것은 디버그 모드로 정상적으로 동작 비주얼 스튜디오 나 -O0에서 GC C와 …

2
이 템플릿 코드는 배열의 크기를 어떻게 얻습니까?
왜 이런 종류의 코드가 테스트 배열의 크기를 얻을 수 있는지 궁금합니다. 템플릿의 문법에 익숙하지 않습니다. 누군가가 아래 코드의 의미를 설명 할 수 template<typename,size_t>있습니다. 게다가, 참조 링크도 선호됩니다. #define dimof(array) (sizeof(DimofSizeHelper(array))) template <typename T, size_t N> char(&DimofSizeHelper(T(&array)[N]))[N]; void InitDynCalls() { char test[20]; size_t n = dimof(test); printf("%d", n); }
61 c++  visual-c++ 

10
C ++의 서명 된 오버플로 및 정의되지 않은 동작 (UB)
다음과 같은 코드 사용에 대해 궁금합니다. int result = 0; int factor = 1; for (...) { result = ... factor *= 10; } return result; 루프가 n시간 이 지남에 따라 반복되면 정확히 시간을 factor곱합니다 . 그러나 총 횟수를 곱한 후에 만 ​​사용됩니다 . 루프의 마지막 반복을 제외하고 오버플로 가 …

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

3
C ++ 20에서 사용자 정의 우주선 연산자 구현에 대해 동등 연산자가 정의되지 않음
<=>C ++ 20 의 새로운 우주선 연산자 로 이상한 행동을하고 있습니다. 와 함께 Visual Studio 2019 컴파일러를 사용하고 /std:c++latest있습니다. 이 코드는 예상대로 정상적으로 컴파일됩니다. #include <compare> struct X { int Dummy = 0; auto operator<=>(const X&) const = default; // Default implementation }; int main() { X a, b; a …

3
하나의 함수 호출 C ++를 사용하여 여러 상수 클래스 멤버 초기화
동일한 함수 호출을 기반으로 초기화 해야하는 두 개의 다른 상수 멤버 변수가있는 경우 함수를 두 번 호출하지 않고이를 수행하는 방법이 있습니까? 예를 들어 분자와 분모가 일정한 분수 클래스입니다. int gcd(int a, int b); // Greatest Common Divisor class Fraction { public: // Lets say we want to initialize to a …

5
C ++에서 템플릿 친화적 인 문자열을 숫자로
C ++ 표준 라이브러리에는 문자열에서 숫자 유형으로 변환하는 함수가 있습니다. stoi stol stoll stoul stoull stof stod stold 그러나 템플릿 코드에서 사용하는 것이 지루하다고 생각합니다. 다음과 같은 템플릿 기능이없는 이유 : template<typename T> T sto(...) 문자열을 숫자 형식으로 변환하는 방법? 나는 기술적 인 이유가 보이지 않지만 뭔가 빠진 것 같습니다. …

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