아래 코드는 최적화 여부에 관계없이 Visual Studio 2008에서 작동합니다. 그러나 최적화 (O0)없이 g ++에서만 작동합니다. #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t << std::endl; double r = std::floor(t + …
C ++ 14에서 연관 컨테이너는 C ++ 11에서 변경된 것 같습니다 – [associative.reqmts] / 13은 다음과 같이 말합니다. 멤버 함수 템플릿은 find, count, lower_bound, upper_bound,와 equal_range유형이하지 않는 오버로드 확인에 참여하지 않는다 Compare::is_transparent존재한다. 비교기를 "투명하게"만드는 목적은 무엇입니까? C ++ 14는 다음과 같은 라이브러리 템플릿도 제공합니다. template <class T = void> struct …
사용자에게 이름과 상태를 묻는 다음 코드가 있습니다. #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; } } 내가 찾은 것은 이름이 성공적으로 …
프로그래밍 수업을 위해 C ++를 배우기 시작했습니다. 이 "Hello World"프로그램을 다운로드했습니다. #include <iostream> using namespace std; int main() { cout << "Hello, World!"; return 0; } 그러나 Turbo C ++는 다음과 같이 불평합니다. Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error D:\HELLO.CPP 2: Declaration syntax error Error D:\HELLO.CPP …
최근 인터뷰에서 다음과 같은 객관적인 질문이있었습니다. int a = 0; cout << a++ << a; 답변: ㅏ. 10 b. 01 c. 정의되지 않은 동작 나는 선택 b에 대답했다. 즉 출력은 "01"이 될 것이다. 그러나 놀랍게도 면접관은 정답이 옵션 c : 정의되지 않음이라고 들었습니다. 이제 C ++의 시퀀스 포인트 개념을 알고 …
왼쪽 및 오른쪽 시프트 연산자 (<< 및 >>)는 이미 C ++에서 사용할 수 있습니다. 그러나 원형 이동이나 회전 작업을 수행하는 방법을 찾을 수 없었습니다. "왼쪽으로 회전"및 "오른쪽으로 회전"과 같은 작업을 어떻게 수행 할 수 있습니까? 여기에서 오른쪽으로 두 번 회전 Initial --> 1000 0011 0100 0010 결과는 다음과 같습니다. Final …
함수 포인터의 유용성을 보는 데 문제가 있습니다. 나는 그것이 어떤 경우에 유용 할 것이라고 생각하지만 (결국 존재한다) 함수 포인터를 사용하는 것이 더 낫거나 피할 수없는 경우를 생각할 수 없다. 함수 포인터 (C 또는 C ++)를 잘 사용하는 몇 가지 예를 들어 주시겠습니까?
동일한 이름의 함수가 있지만 기본 및 파생 클래스에 다른 서명이 있습니다. 파생에서 상속 된 다른 클래스에서 기본 클래스의 함수를 사용하려고하면 오류가 발생합니다. 다음 코드를 참조하십시오. class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { …
C ++의 괄호는 여러 위치에서 사용됩니다. 예를 들어 연산자 우선 순위를 재정의하는 함수 호출 및 그룹화 표현식에서. 그렇다 불법 여분의 괄호에서 (예 : 주변에 함수 호출 인수 목록과 같은), C의 일반적인 - 그러나 absolute-하지 규칙 ++ 것입니다 추가 괄호 해치지 않을 : 5.1 기본 표현식 [expr.prim] 5.1.1 일반 [expr.prim.general] 6 …
제목에서 알 수 있듯이 "as-if"규칙은 정확히 무엇입니까? 일반적인 대답은 다음과 같습니다. 프로그램의 관찰 가능한 동작을 변경하지 않는 모든 코드 변환을 허용하는 규칙 때때로 우리는이 규칙에 기인하는 특정 구현에서 동작을 계속 얻습니다. 여러 번 잘못되었습니다. 이 규칙은 정확히 무엇입니까? 표준은이 규칙을 섹션이나 단락으로 명확하게 언급하지 않습니다. 그렇다면 정확히이 규칙의 범위에 속하는 …
공유 포인터로 래핑 된 객체를 선언하면 : std::shared_ptr<myClass> myClassObject(new myClass()); 그런 다음 메서드에 인수로 전달하고 싶었습니다. DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr<myClass> arg1) { arg1->someField = 4; } 위의 내용은 단순히 shared_pt의 참조 횟수를 증가시키고 모든 것이 멋지나요? 아니면 매달린 포인터를 남기나요? 그래도 이렇게해야합니까? : DoSomething(myClassObject.Get()); void DoSomething(std::shared_ptr<myClass>* arg1) { …
g++ 다음과 같은 형식의 오류를 제공합니다. foo.cc:<line>:<column>: fatal error: <bar>: No such file or directory compilation terminated. 를 사용하여 C 프로그램을 컴파일 할 때도 마찬가지입니다 gcc. 왜 그런 겁니까? 참고 : 이 질문은 이전에 여러 번 요청되었지만 매번 질문자의 상황에 따라 다릅니다. 이 질문의 목적은 다른 사람들이 , 단번에의 중복으로 …
복사 생성자 이후 MyClass(const MyClass&); 및 = 연산자 오버로드 MyClass& operator = (const MyClass&); 거의 동일한 코드, 동일한 매개 변수, 반환시에만 차이가있는 경우 둘 다 사용할 수있는 공통 기능을 가질 수 있습니까?
C ++ 17 표준은 "템플릿 추론 가이드"를 도입합니다. 이 표준 버전에 도입 된 생성자에 대한 새로운 템플릿 인수 추론과 관련이 있다고 생각하지만, 그것이 무엇인지, 무엇을위한 것인지에 대한 간단한 FAQ 스타일의 설명은 아직 보지 못했습니다. C ++ 17의 템플릿 추론 가이드 란 무엇입니까? 왜 (그리고 언제) 그것들이 필요합니까? 어떻게 신고합니까?