«clang» 태그된 질문

clang LLVM 컴파일러 프런트 엔드에 대한 질문입니다. C에 대한 일반적인 질문은 C 태그를 사용하십시오.


4
Xcode에서 C ++ 11을 사용할 수 있습니까?
auto일부 크로스 플랫폼 프로젝트 (Windows + Mac) 에서 일부 C ++ 11 기능 (예 : 예) 의 사용을 고려하고 있습니다 . Windows에서 Visual Studio는 코드베이스의 일부를 단순화 할 수있는 곧 출시 될 C ++ 11 표준의 일부를 지원하므로 자연스럽게 이러한 기능을 사용하는 데 관심이있을 것입니다. 그러나 내가 아는 한 현재 …
86 c++  xcode  gcc  c++11  clang 

9
Catalina C ++ : <cmath> 헤더를 사용하면 오류가 발생합니다 : 전역 네임 스페이스에 'signbit'이라는 멤버가 없습니다.
Mojave에서 Catalina로 업그레이드 한 후 환경 설정 : /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk &lt;cmath&gt;헤더 를 사용하는 프로그램을 컴파일 할 수 없습니다 . CFLAGS, CCFLAGS, CXXFLAGS를 변경하여 MacOSSDK 위치를 가리 키도록 변경하지 않았습니다. Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] Building CXX object OgreMain/CMakeFiles/OgreMain.dir/src/OgreASTCCodec.cpp.o cd /Users/roman/Downloads/ogre-1.12.2/build/OgreMain &amp;&amp; /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DOgreMain_EXPORTS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OSX …

1
Clang은 코드를 컴파일하지 않지만 gcc 및 msvc는 코드를 컴파일했습니다.
내 코드 또는 컴파일러 (가능하지 않은)에서 문제가 무엇인지 이해하지 못합니다. 다음과 같은 코드가 있습니다. #include &lt;iostream&gt; #include &lt;type_traits&gt; #include &lt;set&gt; template&lt;typename T, typename = void&gt; struct TestA: std::false_type {}; template&lt;typename T&gt; struct TestA&lt;T, std::void_t&lt;typename T::reverse_iterator&gt;&gt; : std::true_type {}; template&lt;typename T&gt; struct TestA&lt;T, std::void_t&lt;typename T::dummy_iterator&gt;&gt; : std::true_type {}; int main() { …

1
Clang / Win의 vector <bool> 요소에서 std :: swap이 작동하지 않는 이유는 무엇입니까?
다음과 같은 코드가 있습니다. #include &lt;vector&gt; #include &lt;utility&gt; int main() { std::vector&lt;bool&gt; vb{true, false}; std::swap(vb[0], vb[1]); } vector&lt;bool&gt;제쳐두고 의 정신에 대한 논쟁 , 이것은 잘 작동했습니다 : Mac 용 Clang Windows 용 Visual Studio Linux 용 GCC 그런 다음 Windows에서 Clang을 사용하여 빌드하려고 시도하고 다음과 같은 오류가 발생했습니다. error: no …


1
C ++ 17에서 초기화 후 인라인 변수를 변경할 수 있습니까?
내 시나리오는 다음과 같습니다 (clang에서는 작동하지만 gcc에서는 작동하지 않음) liba.hpp : inline int MY_GLOBAL = 0; libother.cpp : (dll) #include "myliba.hpp" void myFunc() { // MYGLOBAL = 28; } someexe.cpp : RunAppThatUsesBothLibAandLibOther(); 문제는 인라인 변수가 런타임에 과도하게 수정되어 28을 예상 한 위치에서 0을 표시한다는 것입니다. MSVC는 이에 동의하지 않지만 clang은 …
11 c++  visual-c++  dll  clang  c++17 

1
최신 OpenMP 지원을 얻기 위해 명령 줄에서 clang을 사용하도록 창에서 CMake 구성
병렬화에 OpenMP를 사용 하는 작은 테스트 프로젝트 가 있습니다. 내 목표는 생산 있도록 컴파일하는 것입니다 .dll및 .lib이에 대한 고정 표시기에서 수행 할 수 있도록 (외부 라이브러리 내 실제 프로젝트 링크가이 유형을 사용하여 분산하기 때문에)의 OpenMP 4.5 이상을 지원, 라이브러리 및 명령 줄에서 그것을 할 테스트 및 검사 (도커 ​​부분은이 질문의 …

1
컴파일러가 여기에 수신자 저장 레지스터 사용을 고집하는 이유는 무엇입니까?
이 C 코드를 고려하십시오. void foo(void); long bar(long x) { foo(); return x; } GCC 9.3에서 -O3또는로 컴파일하면 다음과 -Os같이 나타납니다. bar: push r12 mov r12, rdi call foo mov rax, r12 pop r12 ret clang의 출력 은 수신자 저장 레지스터 rbx대신 선택을 제외하고 동일합니다 r12. 그러나 다음과 같은 어셈블리를보고 …
10 c  gcc  assembly  clang  x86-64 

3
nullptr을 uintptr_t로 변환 할 수 있습니까? 다른 컴파일러는 동의하지 않습니다
이 프로그램을 고려하십시오 : #include &lt;cstdint&gt; using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } msvc v19.24로 컴파일하지 못했습니다. &lt;source&gt;(5): error C2440: '&lt;function-style-cast&gt;': cannot convert from 'nullptr' to 'my_time_t' &lt;source&gt;(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral …
10 c++  c++11  gcc  visual-c++  clang 

1
템플릿 템플릿 클래스가있는 GCC / C ++ 17의 문제
다음 2 가지 과부하를 고려하십시오 template&lt;typename T&gt; bool test() { return true; } template&lt;template&lt;typename ...&gt; class T&gt; bool test() { return false; } 첫 번째 클래스는 일반 클래스에서 작동하고 두 번째 클래스는 인스턴스화되지 않은 템플릿에서 작동합니다. 예를 들어 : std::cout&lt;&lt;test&lt;int&gt;()&lt;&lt;std::endl; &lt;-- this yields 1 std::cout&lt;&lt;test&lt;std::list&gt;()&lt;&lt;std::endl; &lt;--this yields 0 이제 다음 …
10 c++  templates  gcc  clang  c++17 

2
다른 C ++ 컴파일러간에 자동 유형이 일치하지 않습니다.
그래서 현대 C ++의 풍미로 내적 제품 ( https://en.wikipedia.org/wiki/Dot_product ) 을 구현하려고 시도 하고 다음 코드를 생각해 냈습니다. #include &lt;iostream&gt; template&lt;class... Args&gt; auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = {brgs...}, i2 …

2
void 포인터 (void *)가 두 가지 데이터 유형 중 하나인지 확인하는 방법은 무엇입니까?
2 type초의 매개 변수 를 허용하려는 함수를 작성 중입니다. A string(char *) structuren 개의 요소가있는 A. 그리고 이것을 달성하기 위해 void *매개 변수 유형 으로 간단한 것을 사용할 생각입니다 . 그러나 매개 변수가 하나의 유형인지 다른 유형인지 안전하게 확인하는 방법을 모르겠습니다.
10 c  gcc  types  clang 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.