«c++» 태그된 질문

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

6
사용하지 않는 멤버 변수가 메모리를 차지합니까?
멤버 변수를 초기화하고 참조 / 사용하지 않으면 런타임 중에 RAM을 더 많이 차지합니까, 아니면 컴파일러가 단순히 해당 변수를 무시합니까? struct Foo { int var1; int var2; Foo() { var1 = 5; std::cout << var1; } }; 위의 예에서 멤버 'var1'은 콘솔에 표시되는 값을 가져옵니다. 그러나 'Var2'는 전혀 사용되지 않습니다. 따라서 …
92 c++  memory  struct 

8
std :: map 삽입 또는 std :: map 찾기?
기존 항목을 보존하려는 맵을 가정합니다. 20 %의 경우 삽입하는 항목은 새 데이터입니다. 반환 된 반복자를 사용하여 std :: map :: find 다음 std :: map :: insert를 수행하는 것이 장점이 있습니까? 아니면 삽입을 시도한 다음 반복자가 레코드가 삽입되었는지 여부를 나타내는 지 여부에 따라 작업하는 것이 더 빠릅니까?
92 c++  optimization  stl  stdmap 

4
일부 컴파일러가 동일한 문자열 리터럴에 동일한 주소를 사용하는 이유는 무엇입니까?
https://godbolt.org/z/cyBiWY 'some'MSVC에서 생성 한 어셈블러 코드에서 두 개의 리터럴을 볼 수 있지만 clang과 gcc가있는 것은 하나뿐입니다. 이로 인해 코드 실행 결과가 완전히 다릅니다. static const char *A = "some"; static const char *B = "some"; void f() { if (A == B) { throw "Hello, string merging!"; } } 누구든지 …

3
신호 'SIGILL'의 원인은 무엇입니까?
NDK 및 GCC를 사용하여 일부 C ++ 코드를 Android로 이식하고 있습니다. 코드는 기본적으로 실행됩니다. 어느 시점에서 Eclipse에서 디버깅 할 때 호출 Dabbler::Android::Factory* pFactory = new Dabbler::Android::Factory; 이 오류가 발생합니다. Thread [1] (Suspended: Signal 'SIGILL' received. Description: Illegal instruction.) 1 <symbol is not available> 0x812feb44 그게 무슨 뜻입니까? 컴파일러가 어떤 이유로 …

2
파생 클래스에서 이름은 같지만 서명이 다른 함수
동일한 이름의 함수가 있지만 기본 및 파생 클래스에 다른 서명이 있습니다. 파생에서 상속 된 다른 클래스에서 기본 클래스의 함수를 사용하려고하면 오류가 발생합니다. 다음 코드를 참조하십시오. class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { …

9
stdcall 및 cdecl
두 가지 유형의 호출 규칙 ( stdcall 및 cdecl)이 있습니다. 나는 그들에 대해 몇 가지 질문이 있습니다. cdecl 함수가 호출 될 때 호출자는 스택을 해제해야하는지 어떻게 알 수 있습니까? 호출 사이트에서 호출자가 호출되는 함수가 cdecl인지 stdcall 함수인지 알고 있습니까? 어떻게 작동합니까? 호출자는 스택을 해제해야하는지 여부를 어떻게 알 수 있습니까? 아니면 …
92 c++  stdcall  cdecl 


8
vector <bool>의 대안
(희망적으로) 우리 모두가 알고 있듯이 vector&lt;bool&gt;완전히 깨져서 C 배열로 취급 될 수 없습니다. 이 기능을 얻는 가장 좋은 방법은 무엇입니까? 지금까지 내가 생각한 아이디어는 다음과 같습니다. vector&lt;char&gt;대신 사용 하거나 래퍼 클래스를 사용하고 vector&lt;bool_wrapper&gt; 이 문제를 어떻게 처리합니까? c_array()기능이 필요합니다 . 부수적 인 질문으로, c_array()방법이 필요하지 않은 경우 임의 액세스가 필요한 …
92 c++  stl  vector  boolean 

6
템플릿 클래스의 단일 메서드에 대한 템플릿 전문화
템플릿 클래스를 포함하는 다음 헤더가 적어도 두 개의 .CPP파일에 포함되어 있다는 점을 항상 고려하면 이 코드는 올바르게 컴파일됩니다. template &lt;class T&gt; class TClass { public: void doSomething(std::vector&lt;T&gt; * v); }; template &lt;class T&gt; void TClass&lt;T&gt;::doSomething(std::vector&lt;T&gt; * v) { // Do something with a vector of a generic T } template …

6
C ++에서 포인터 삭제
컨텍스트 : 저는 포인터 주위에 머리를 감 으려고 노력하고 있습니다. 우리는 몇 주 전에 학교에서 그들을 보았고 오늘 연습하는 동안 나는 어리석은 일을 만났습니다. 문제, 그것은 당신에게 매우 간단 할 수 있지만 프로그래밍 경험이 거의 없습니다. 나는 포인터 삭제에 관한 몇 가지 질문을 보았지만 모두 '간단한'포인터가 아닌 클래스 삭제와 관련이있는 …

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

3
C ++ std :: ref (T)와 T &의 차이점은 무엇입니까?
이 프로그램에 대해 몇 가지 질문이 있습니다. #include &lt;iostream&gt; #include &lt;type_traits&gt; #include &lt;functional&gt; using namespace std; template &lt;typename T&gt; void foo ( T x ) { auto r=ref(x); cout&lt;&lt;boolalpha; cout&lt;&lt;is_same&lt;T&amp;,decltype(r)&gt;::value; } int main() { int x=5; foo (x); return 0; } 출력은 다음과 같습니다. false std::ref객체의 참조를 반환하지 않으면 무엇을하는지 …
92 c++  reference  ref 



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

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