25得票3回答
Visual-C++-2017二进制文件是否与VC++-2015兼容?

Steve告诉我,VC 2015和VC 2017实际上是(将要)二进制兼容的。 我在2017(RC)版本发布说明或其他地方都找到了零有关此信息的内容,所以在这里提问: 使用VC++-2017编译的C++(C++接口)DLL是否与使用VC++-2015编译的DLL二进制兼容? 2017和2...

24得票4回答
如何检测Visual C++ 2017可再发行组件是否已安装

随着微软在最新版本中更改注册表项的模式,如何检测机器上是否安装了Visual C++ 2017 Redistributable? 我的目标是安装VC++2015Redist,因为该软件使用VS2015编写。如果我能成功检测到机器上的VC++2017Redist,则跳过VC++2015Redi...

14得票2回答
将uint32_t强制转换为uint64_t会导致不同的值吗?

我使用Visual Studio 2015 C++版本14.0.25431.01 Update 3,我的代码出现了意外行为。在64位Release模式下编译和运行:#include <iostream> #include <stdint.h> int main(int...

12得票2回答
如果模板没有可变参数,Lambda表达式将被推导为std::function。

template<typename ReturnT, typename... ParamT> void foo(std::function<ReturnT(ParamT...)> callback) {} template<typename ReturnT, t...

11得票1回答
成员初始化列表上的统一初始化错误

我在这段C++11代码上遇到了编译错误,但我不知道为什么。 这是代码:#include <condition_variable> class NonCopiableClass { std::condition_variable condition_; }; struct...

10得票1回答
使用在不同时间/团队编译的同一版本Visual Studio中的C++ DLL - 是否具有ABI兼容性?

重申一下:我正在寻找同一版本的Visual C++库之间ABI兼容性! 我们想要混合和匹配来自不同团队的一些内部C++ DLL - 这些DLL是在不同时间使用不同的项目文件构建的。由于编译时间很长,我们确切地希望避免大型单块构建,其中每个团队重新编译另一个团队库的源代码。 当使用具有C++...

8得票1回答
为什么Visual C++ 2015允许std::atomic赋值?

几天前我写了以下内容: struct A { std::atomic_bool b = false; }; 使用Visual Studio 2015 Update 3及其VC++2015编译器编译时,没有出现任何问题。 现在我用Ubuntu上的GCC (5.4.0)重新编译同样的...

7得票1回答
MSVC与GCC在sizeof运算符上的行为不一致

请看下面的代码: 考虑以下代码: #include <cstddef> class A { public: struct B { int M; }; static void StaticFunc(); }; void A::...

7得票2回答
使用 secure _vsnprintf_s 获取所需的缓冲区长度

我试图更新一些“遗留”代码以符合最新的MSVC安全更新,但在从_vsnprintf迁移到_vsnprintf_s时遇到了一些问题。 特别是,我使用空缓冲区和计数/长度为零调用_vsnprintf,获取结果,分配所需大小的缓冲区(返回值+1),然后再次使用新分配的缓冲区和已知正确的大小调用_v...