Вопросы с тегом «visual-c++»

Microsoft Visual C ++ - это компилятор C, C ++ и C ++ / CLI для Windows. Самая последняя версия компилятора - Visual C ++ 2019. Компилятор поддерживает следующие языки: C (поддерживает C90 и большинство частей C99 и C11 стандарта ISO C ++ начиная с Visual Studio 2019); C ++ (поддержка большинства функций C ++ 11, C ++ 14 и C ++ 17 и некоторых функций C ++ 20 начиная с Visual Studio 2019) C ++ / CLI (обеспечивает взаимодействие с языками .NET, такими как C #).

2
целое число -> правила преобразования указателя
Рассмотрим следующий код. 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), тоже не работают. Даже …
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 …

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) {} …
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(); Проблема в том, что встроенная переменная показывала 0 в тех местах, где я ожидал 28, потому что она была …
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 …
10 c++  c++11  gcc  visual-c++  clang 

1
Что такое эквивалент MSVC для -fno-char8_t?
В C ++ 20 u8строковых литералов основаны на char8_tтипе. Они сознательно больше не переходят в char const*: const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20 Конечно, конечная цель при переходе на C ++ 20 - полностью перейти на новое поведение (в приведенном выше примере: изменить тип …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.