«c++» 태그된 질문

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

2
이게 무엇인가요 (())?
gcc 컴파일러 소스 코드 (gcc / c-family / c-pragma.c)를 탐색하는 동안 다음을 참조하십시오. typedef struct GTY(()) align_stack { int alignment; tree id; struct align_stack * prev; } align_stack; 그리고 저에게 많은 C 프로그래밍 (())이 있었음에도 불구하고 ,이 부분 은 아직 완전히 알려지지 않았습니다. 누군가 그 의미를 설명해 주시겠습니까? Google이 찾지 …
90 c++  c 

16
i ++가 스레드로부터 안전하지 않다고 들었습니다. ++ i는 스레드로부터 안전합니까?
나는 어셈블리에서 원래 값을 임시 어딘가에 저장하고 증가시킨 다음 컨텍스트 스위치에 의해 중단 될 수있는 대체하기 때문에 i ++가 스레드로부터 안전한 진술이 아니라고 들었습니다. 그러나 ++ i에 대해 궁금합니다. 내가 알 수있는 한, 이것은 'add r1, r1, 1'과 같은 단일 어셈블리 명령어로 축소되며 하나의 명령어 일 뿐이므로 컨텍스트 스위치에 의해 …
90 c++  c  multithreading 

3
<random>은 Linux에서 동일한 숫자를 생성하지만 Windows에서는 생성하지 않습니다.
아래 코드는 간격 [1,100]에서 5 개의 의사 난수 목록을 생성하기위한 것입니다. 나는 시스템 시간을 유닉스 시간으로 반환 하는 default_random_enginewith를 시드합니다 . Microsoft Visual Studio 2013을 사용하여 Windows 7에서이 프로그램을 컴파일하고 실행하면 예상대로 작동합니다 (아래 참조). 그러나 g ++ 컴파일러로 Arch Linux에서 그렇게하면 이상하게 작동합니다.time(0) Linux에서는 매번 5 개의 숫자가 생성됩니다. …

2
GNU GCC (g ++) : 왜 다중 dtor를 생성합니까?
개발 환경 : GNU GCC (g ++) 4.1.2 단위 테스트에서 '코드 커버리지-특히 함수 커버리지'를 늘리는 방법을 조사하는 동안 일부 클래스 dtor가 여러 번 생성되는 것 같습니다. 왜 그런지 아는 분이 있습니까? 다음 코드를 사용하여 위에서 언급 한 것을 시도하고 관찰했습니다. "test.h"에서 class BaseClass { public: ~BaseClass(); void someMethod(); }; class …
90 c++  g++  destructor 


6
doxygen을 사용하여 C ++ 소스에서 UML 클래스 다이어그램을 만드는 방법
doxygen으로 간단한 클래스 다이어그램을 생성하는 방법을 설명하는 자료를 찾고 있었지만 찾을 수 없었습니다. 아무도 도울 수 있습니까? C ++ 파일 집합에서 아래와 같이 다이어그램을 만들어야합니다. 이 작업을 더 쉽게 수행 할 수있는 더 좋은 도구가 있으면 알려주세요.

2
이 부동 소수점 최적화가 허용됩니까?
나는 float큰 정수를 정확하게 표현하는 능력을 잃는 곳을 확인하려고 노력했습니다 . 그래서이 작은 조각을 썼습니다. int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } 이 코드는 clang을 제외한 모든 컴파일러에서 작동하는 것 같습니다. Clang은 간단한 무한 루프를 생성합니다. Godbolt . 허용됩니까? 그렇다면 …




4
매크로 인수를 문자열 리터럴로 사용하는 방법은 무엇입니까?
변수 이름의 문자열 리터럴 표현과 변수 자체를 함수로 전달하는 매크로를 작성하는 방법을 알아 내려고합니다. 예를 들어 다음과 같은 기능이 있습니다. void do_something(string name, int val) { cout &lt;&lt; name &lt;&lt; ": " &lt;&lt; val &lt;&lt; endl; } 이 작업을 수행 할 수 있도록 매크로를 작성하고 싶습니다. int my_val = 5; …


8
CMake에서 CCache를 사용하는 방법?
다음을 수행하고 싶습니다. CCache가 PATH에 있으면 컴파일에 "ccache g ++"를 사용하고 그렇지 않으면 g ++를 사용합니다. 다음을 포함하는 작은 my-cmake 스크립트를 작성해 보았습니다. CC="ccache gcc" CXX="ccache g++" cmake $* 그러나 작동하지 않는 것 같습니다 (make를 실행해도 여전히 ccache를 사용하지 않습니다. CMAKE_VERBOSE_MAKEFILE을 사용하여 확인했습니다). 최신 정보: 이 링크에 따라 스크립트를 cmake …
90 c++  unix  cmake  ccache 

9
고유 한 익명 유형으로 언어를 디자인하는 이유는 무엇입니까?
이것은 항상 C ++ 람다 식의 기능으로 나를 괴롭히는 것입니다. C ++ 람다 식의 유형은 독특하고 익명이므로 간단히 적을 수 없습니다. 구문 적으로 정확히 동일한 두 개의 람다를 생성하더라도 결과 유형은 구별되도록 정의됩니다. 그 결과, a) 람다는 컴파일 시간을 허용하는 템플릿 함수에만 전달 될 수 있으며, 말할 수없는 유형은 객체와 …

4
C ++ 코드에서 C 함수 호출
C ++에서 호출하고 싶은 C 함수가 있습니다. extern "C" void foo()C 함수가 g ++를 사용하여 컴파일되지 않았기 때문에 " "종류의 접근 방식을 사용할 수 없습니다 . 그러나 gcc를 사용하여 잘 컴파일됩니다. C ++에서 함수를 호출하는 방법에 대한 아이디어가 있습니까?
90 c++  c  linux  extern-c 

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