«c++» 태그된 질문

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

6
C ++ 11을 사용하는 중복 코드
현재 프로젝트를 진행 중이며 다음과 같은 문제가 있습니다. 두 가지 다른 방법으로 작업하려는 C ++ 메서드가 있습니다. void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } 그리고 실제 기능이 훨씬 길기 때문에 내 코드를 복제하지 않고 싶습니다. 문제는 어떤 상황에서도 MyFunctionWithABonus 대신 MyFunction이 호출 …
80 c++  c++11  templates 

3
Boost assert.hpp 파일에서 P :: ************는 무엇을 의미합니까?
에 부스트 / MPL / assert.hpp , 나는 이런 식으로 뭔가를 보았다 : template<class Pred> struct eval_assert { typedef typename extract_assert_pred<Pred>::type P; typedef typename P::type p_type; typedef typename ::boost::mpl::if_c<p_type::value, AUX778076_ASSERT_ARG(assert<false>), failed ************ P::************ >::type type; }; 첫 번째 ************가 struct의 포인터가 실패한 것으로 처리 될 수 있다면 P::************실제로는 나에게 의미가 …
80 c++  pointers  boost 

4
C ++ 배열 초기화
배열을 모두 0으로 초기화하는이 형식입니다. char myarray[ARRAY_SIZE] = {0} 모든 컴파일러에서 지원합니까? , 그렇다면 다른 유형과 유사한 구문이 있습니까? 예를 들면 bool myBoolArray[ARRAY_SIZE] = {false}
80 c++  syntax 

3
왜 이것이 기본 생성자를 호출합니까?
struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } 이 중 하나를 인쇄 할 것으로 예상했을 것입니다. X(int)때문에 X(answer);에서 캐스트로 해석 될 수 int로 X, 또는 X(answer);변수의 선언으로 해석 될 수 있기 때문에 …

5
왜 많은 (오래된) 프로그램이 round (input) 대신 floor (0.5 + input)를 사용합니까?
차이점은 다음 코드 와 같이 내가 믿는 타이 브레이킹에 대한 입력을 제공하는 반환 값에 있습니다 . int main() { std::cout.precision(100); double input = std::nextafter(0.05, 0.0) / 0.1; double x1 = floor(0.5 + input); double x2 = round(input); std::cout << x1 << std::endl; std::cout << x2 << std::endl; } 다음을 출력합니다. …
80 c++  rounding  floor 


2
C ++에서 비어있는 std :: shared_ptr의 차이점은 무엇입니까?
cplusplus.com의 shared_ptr페이지는 구별 부른다 빈 std::shared_ptr 과 널을 shared_ptr . cppreference.com 페이지 를 명시 적으로 모두 "빈"와 비교 차이를 불러하지만, 사용하지 않는 nullptr자사의 설명에 std::shared_ptr행동. 비어있는 것과 널 사이에 차이점이 shared_ptr있습니까? 이러한 혼합 동작 포인터에 대한 사용 사례가 있습니까? 비어 있지 않은 null shared_ptr도 의미가 있습니까? 정상적인 사용에서 (즉, 명시 …
80 c++  c++11  shared-ptr 

1
더 많은 정신 광기-파서 유형 (규칙 대 int_parser <>) 및 메타 프로그래밍 기술
질문은 맨 아래에 굵게 표시되어 있으며 문제는 끝 부분의 증류 코드 조각으로 요약됩니다. 내 유형 시스템 (유형 시스템이 유형에서 문자열로, 유형에서 문자열로 수행)을 단일 구성 요소 (Lakos에서 정의한대로)로 통합하려고합니다. 내가 사용하고 boost::array, boost::variant하고, boost::mpl이를 달성하기 위해. 내 유형에 대한 파서 및 생성기 규칙을 변형으로 통합하고 싶습니다. 정의되지 않은 유형, int4 …

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

28
예외를 보수적으로 사용해야하는 이유는 무엇입니까?
나는 종종 사람들이 예외는 드물게 사용되어야한다고 말하는 것을 보거나 듣지만 그 이유를 설명하지 않습니다. 그것이 사실 일지 모르지만, 이론적 근거는 일반적으로 "이유가있는 예외라고 불린다" 는 단순한 글입니다. 이것은 저에게는 존경할만한 프로그래머 / 엔지니어가 절대로 받아 들여서는 안되는 일종의 설명 인 것 같습니다. 예외를 사용하여 해결할 수있는 다양한 문제가 있습니다. 제어 …
80 c++  exception 

13
C ++에서 big int를 구현하는 방법
프로그래밍 연습으로 C ++에서 큰 int 클래스를 구현하고 싶습니다.이 클래스는 long int보다 큰 숫자를 처리 할 수 ​​있습니다. 이미 몇 가지 오픈 소스 구현이 있다는 것을 알고 있지만 직접 작성하고 싶습니다. 나는 올바른 접근 방식이 무엇인지 느끼려고 노력하고 있습니다. 일반적인 전략은 숫자를 문자열로 얻은 다음 더 작은 숫자 (예 : …

4
이 구조는 어떻게 sizeof == 0을 가질 수 있습니까?
를 sizeof반환 할 구성을 요청하는 오래된 게시물이 있습니다 0. 표준에 따라 어떤 유형이나 변수도 0의 크기를 가질 수 없다는 높은 평판 사용자의 높은 점수 답변이 있습니다. 그리고 저는 그것에 100 % 동의합니다. 그러나이 솔루션을 제시하는 새로운 답변 이 있습니다. struct ZeroMemory { int *a[0]; }; 나는 막 반대표를 던지고 댓글을 …

4
다른 컴파일러에 의해 호출되는 다른 캐스트 연산자
다음의 짧은 C ++ 프로그램을 고려하십시오. #include &lt;iostream&gt; class B { public: operator bool() const { return false; } }; class B2 : public B { public: operator int() { return 5; } }; int main() { B2 b; std::cout &lt;&lt; std::boolalpha &lt;&lt; (bool)b &lt;&lt; std::endl; } 다른 컴파일러에서 컴파일하면 …

16
헤더 파일과 라이브러리의 차이점은 무엇입니까?
내가 이해하기 어려운 것 중 하나는 컴파일러가 작동하는 방식입니다. 나는 많은 어려움을 겪고 있지만 특히 헤더와 라이브러리가 계속 섞여 있습니다. 누군가 일을 조금 정리할 수 있다면 좋을 것입니다.
80 c++  c 

6
"if"문에서 변수 초기화
나는 C ++ 17에서 if다음과 같은 문 에서 변수를 초기화 할 수 있다는 것을 읽었습니다. if (int length = 2; length == 2) //execute something 대신에 int length = 2; if (length == 2) //do something 더 짧지 만 코드 가독성에 영향을 미치며 (특히이 새로운 기능을 모르는 사람들에게) 대규모 소프트웨어 …
80 c++  c++17 

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