«c++» 태그된 질문

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

6
std :: initializer_list가 기본 제공 언어가 아닌 이유는 무엇입니까?
std::initializer_list핵심 언어가 내장되어 있지 않은 이유는 무엇 입니까? C ++ 11의 매우 중요한 기능이지만 자체 예약 된 키워드 (또는 유사)가없는 것 같습니다. 대신, initializer_list그건 단지 특별한 암시가 표준 라이브러리에서 템플릿 클래스 매핑 새로운에서 보강-초기화리스트 {...} 컴파일러에 의해 처리하는 것 구문을. 처음에이 솔루션은 상당히 엉망 입니다. 이것이 C ++ 언어에 대한 …

8
C ++에서 구조체를 비교하는 동안 == 연산자가 없습니다.
다음 구조체의 두 인스턴스를 비교하면 오류가 발생합니다. struct MyStruct1 { MyStruct1(const MyStruct2 &_my_struct_2, const int _an_int = -1) : my_struct_2(_my_struct_2), an_int(_an_int) {} std::string toString() const; MyStruct2 my_struct_2; int an_int; }; 오류는 다음과 같습니다. 오류 C2678 : 바이너리 '==': 'myproj :: MyStruct1'유형의 왼쪽 피연산자를 사용하는 연산자를 찾을 수 없습니다 (또는 허용되는 …

4
다른 개체를 사용할 때 템플릿 전문화의 다중 정의
다른 개체 파일에서 특수 템플릿을 사용하면 연결할 때 "다중 정의"오류가 발생합니다. 내가 찾은 유일한 해결책은 "인라인"기능을 사용하는 것이지만 일부 해결 방법처럼 보입니다. "인라인"키워드를 사용하지 않고 어떻게 해결합니까? 가능하지 않다면 왜? 다음은 예제 코드입니다. paulo@aeris:~/teste/cpp/redef$ cat hello.h #ifndef TEMPLATE_H #define TEMPLATE_H #include <iostream> template <class T> class Hello { public: void …
96 c++  templates 

6
C ++ 17에서 std :: make_unique를 사용하는 이유는 무엇입니까?
내가 이해하는 한, C ++ 14 std::make_unique는 매개 변수 평가 순서가 지정되지 않아 안전하지 않았기 때문에 도입되었습니다 . f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (설명 : 평가가 먼저 원시 포인터에 대한 메모리를 할당 한 다음 호출 g()하고 std::unique_ptr생성 전에 예외가 throw 되면 메모리가 누출됩니다.) 호출 std::make_unique은 호출 순서를 제한하는 방법이므로 …
96 c++  c++17  unique-ptr 


3
C ++ 11에서 std :: function이 비어 있는지 제대로 확인하는 방법은 무엇입니까?
std::function비어 있는지 제대로 확인하는 방법이 궁금합니다 . 이 예를 고려하십시오. class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; 이 코드는 MSVC에서 잘 컴파일되지만 코드 doSomething()를 초기화하지 않고 호출하면 eventFunc분명히 충돌합니다. 그것은 예상되었지만의 가치가 무엇인지 궁금합니다 eventFunc. …

16
C ++의 순환 이동 (회전) 작업에 대한 모범 사례
왼쪽 및 오른쪽 시프트 연산자 (<< 및 >>)는 이미 C ++에서 사용할 수 있습니다. 그러나 원형 이동이나 회전 작업을 수행하는 방법을 찾을 수 없었습니다. "왼쪽으로 회전"및 "오른쪽으로 회전"과 같은 작업을 어떻게 수행 할 수 있습니까? 여기에서 오른쪽으로 두 번 회전 Initial --> 1000 0011 0100 0010 결과는 다음과 같습니다. Final …

2
std :: set에 대한 std :: back_inserter?
이것은 간단한 질문이라고 생각합니다. 다음과 같이해야합니다. std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); 물론, std::back_inserter어떤이 이후 작업은하지하지 않습니다 push_back. std::inserter반복자가 필요합니까? 사용 std::inserter하지 않아서 어떻게해야할지 모르겠습니다. 누구 아이디어가 있습니까? 물론 내 다른 옵션은에 벡터를 사용한 s2다음 나중에 정렬하는 것입니다. 그게 더 좋을까요?
96 c++  algorithm  stl 

4
'::'을 '로 바꾸십시오. 'C ++로 모호성을 만드시겠습니까?
C ++에서 연산자 ::는 네임 스페이스 또는 클래스의 클래스, 함수 및 변수에 액세스하는 데 사용됩니다. 언어 명세를 사용하는 경우 .대신 ::인스턴스 변수 다음 객체 / 방법을 액세스 할 때와 같이 너무 이러한 경우에서와 함께 존재하지 않는 것을 원인 가능한 모호함 ::? C ++에서 유형 이름 인 변수 이름을 허용하지 않기 …


3
버퍼 비우기 란 무엇을 의미합니까?
저는 C ++를 배우고 있는데 이해할 수없는 것을 발견했습니다. 출력 버퍼를 명시 적으로 플러시하여 버퍼를 강제로 쓸 수 있습니다. 기본적으로 읽기 cin플러시 cout; cout프로그램이 정상적으로 종료 될 때도 플러시됩니다. 따라서 버퍼를 플러시 (예 : 출력 버퍼) : 버퍼에있는 모든 것을 삭제하여 버퍼를 지우거나 버퍼에있는 모든 것을 출력하여 버퍼를 지웁니까? 아니면 …
95 c++  input  buffer  output  flush 

5
이동 전용 유형의 벡터를 나열 초기화 할 수 있습니까?
GCC 4.7 스냅 샷을 통해 다음 코드를 전달하면 unique_ptrs를 벡터 에 복사하려고합니다 . #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } 분명히 std::unique_ptr복사 할 수 없기 때문에 작동 하지 않습니다. 오류 : 삭제 된 함수 'std :: unique_ptr <_Tp, …



6
C의 물결표 연산자
ELF 해싱 알고리즘에 사용 된 물결표 연산자를 보았는데 그것이 무엇을하는지 궁금합니다. (코드는 Eternally Confused에서 가져온 것 입니다.) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < len; i++ ) { h …
95 c++  c  operators 

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