«visual-c++» 태그된 질문

Microsoft Visual C ++는 Windows 용 C, C ++ 및 C ++ / CLI 컴파일러입니다. 최신 버전의 컴파일러는 Visual C ++ 2019입니다. 컴파일러는 다음 언어를 지원합니다. C (Visual Studio 2019 기준으로 ISO C ++ 표준의 C90 및 대부분의 C99 및 C11 부분을 지원함); C ++ (Visual Studio 2019 기준 대부분의 C ++ 11, C ++ 14 및 C ++ 17 기능과 일부 C ++ 20 기능 지원) C ++ / CLI (C #과 같은 .NET 언어와의 상호 운용성 제공).


11
Visual C ++에 리팩터링 기능이없는 이유는 무엇입니까?
Visual Studio 2008에서 C ++로 프로그래밍 할 때 C #을 사용할 때 리팩터링 메뉴에 표시되는 것과 같은 기능이없는 이유는 무엇입니까? 저는 Rename을 끊임없이 사용하는데 그것이 없을 때 정말 그리워합니다. 나는 이것을 제공하는 플러그인을 얻을 수 있다고 확신하지만 C ++를 사용할 때 왜 IDE에 통합되지 않습니까? 이것은 C ++를 구문 분석해야하는 …

2
이 템플릿 코드는 배열의 크기를 어떻게 얻습니까?
왜 이런 종류의 코드가 테스트 배열의 크기를 얻을 수 있는지 궁금합니다. 템플릿의 문법에 익숙하지 않습니다. 누군가가 아래 코드의 의미를 설명 할 수 template<typename,size_t>있습니다. 게다가, 참조 링크도 선호됩니다. #define dimof(array) (sizeof(DimofSizeHelper(array))) template <typename T, size_t N> char(&DimofSizeHelper(T(&array)[N]))[N]; void InitDynCalls() { char test[20]; size_t n = dimof(test); printf("%d", n); }
61 c++  visual-c++ 

2
int numeric-> 포인터 변환 규칙
다음 코드를 고려하십시오. void f(double p) {} void f(double* p) {} int main() { f(1-1); return 0; } MSVC 2017은이를 컴파일하지 않습니다. 1-1동일 0하고 따라서로 변환 될 수 있는 모호한 오버로드 된 호출 이 있음을 나타 double*냅니다. 다른 트릭 같은 0x0, 0L또는 static_cast<int>(0), 중 하나가 작동하지 않습니다. a const int …
19 c++  visual-c++  types 

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

1
MSVC의 가능한 컴파일러 버그
다음 코드는 gcc 및 clang (및 기타 여러 C ++ 11 컴파일러)으로 컴파일됩니다. #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = to_datatype<T>::value) {} }; int …
13 c++  c++11  visual-c++ 

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 

3
nullptr을 uintptr_t로 변환 할 수 있습니까? 다른 컴파일러는 동의하지 않습니다
이 프로그램을 고려하십시오 : #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } msvc v19.24로 컴파일하지 못했습니다. <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(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
-fno-char8_t에 해당하는 MSVC는 무엇입니까?
C ++ 20에서 u8문자열 리터럴은 char8_t유형을 기반으로합니다 . 의도적으로 char const*더 이상 변환하지 않습니다 . const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20 물론 C ++ 20으로 마이그레이션 할 때 궁극적 인 목표는 완전히 새로운 동작 (위의 예 : 유형 변경)을 따르는 것입니다 str. 그러나 타사 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.