请考虑以下代码:
#include <iostream>
struct Foo
{
Foo() : bar( 0 ) {}
int bar;
};
int main()
{
Foo foo;
++(foo.bar);
std::cout<< foo.bar << std::endl;
system("pause");
return 0;
};
Run Code Online (Sandbox Code Playgroud)
为什么foo.bar评价为1?
括号中是否没有(foo.bar)创建一个未命名的(r值)表达式,然后递增?
InterlockedExchange和之间有什么区别InterlockedExchangePointer?
是
if( 0 != InterlockedCompareExchange( ( void** ) &_myVariable
, temp
, 0
) )
Run Code Online (Sandbox Code Playgroud)
和
if( 0 != InterlockedCompareExchangePointer( ( void** ) &_myVariable
, temp
, 0
) )
Run Code Online (Sandbox Code Playgroud)
当量?
我必须将代码移植到VC6,后者不知道这些Interlocked[...]Pointer功能.
编辑:
根据我自己的经验,我知道VC6 非常多,并且没有人会再使用它了.
但是,我不是决策者,对原始问题的回答将受到高度赞赏.
我正在使用DirectX 11处理卷渲染程序.
我渲染到窗口(HWND)和纹理(ID3D11Texture2D).
虽然HWND总是看起来正确的渲染,但ID3D11Texture2D对于小于64x64的渲染大小,我看起来很糟糕:

我想知道DirectX 11中是否存在纹理的最小大小限制.
不幸的是,我只能找到有关最大纹理大小限制的信息.
c++ ×2
atomic ×1
directx ×1
directx-11 ×1
interlocked ×1
parentheses ×1
rvalue ×1
visual-c++-6 ×1