草庐IT

std=c++11

全部标签

c++ - 如何中断其他 std::threads C++

我有一个服务器,它是以每个客户端一个线程的方式构建的。最近,我遇到了一个很难想出解决方案的问题,所以我想寻求帮助。我的服务器有一个大厅,大厅里有很多房间(都是用户的),房间里有玩家。每个房间都有一个管理员,当管理员选择离开时-房间关闭,所有用户都应该返回大厅。现在,我已经有了一个工作代码-但问题是,我不知道我应该如何让其他客户也退出房间。线程中运行的代码如下:while(in_lobby){//Receiveamessage//Dostuff//IncertaincaseschangetheBooleantofittothesituation//Sendacomeback}while(

c++ - 为什么不能将 mem_fn 应用于 std::string 的成员函数?

structint_holder{intvalue;inttriple(){returnvalue*3;}};intmain(intargc,constchar*argv[]){std::stringabc{"abc"};int_holderone{1};autof1=mem_fn(&std::string::clear);autof2=mem_fn(&int_holder::triple);f1(abc);f2(one);}我在Xcode中测试这样的代码,编译器发出这样的错误似乎mem_fn可以用于用户定义类的成员函数,但不能用于标准字符串的成员函数,有什么不同,为什么?感谢您的阅读

c++ - 为什么我们需要使用转换矩阵的 "transpose"? (direct3D11)

我已阅读SimpleMath并阅读Programmersguide文章,但我似乎无法理解矩阵“转换”后转置矩阵的目的我的意思是,我明白矩阵的转置是什么。我只是不明白为什么我们需要实际进行转置。以这段代码为例..(假设已经为CameraView和CameraProjection创建了矩阵)World=XMMatrixIdentity();WVP=World*CameraView*CameraProjection;XMMatrixTranspose(WVP)所以我的问题是,获取WVP的转置的目的是什么?这对Direct3D11有何作用? 最佳答案

C++11:std::mem_fn 的类型名称

auto很好,但我需要在类中声明一个成员,而不是堆栈中的变量。decltype有效,但不知何故看起来很奇怪classAutomation{void_init_state(int);decltype(std::mem_fn(&Automation::_init_state))next_state;};std::function似乎也可以,但与纯成员函数有细微差别classAutomation{void_init_state(int){}public:decltype(std::mem_fn(&Automation::_init_state))next_state;std::functio

c++ - 了解 DirectX11 和 Directx11.1 示例 msdn 代码

在为win32初始化DirectX11.1时,我遵循了MSDN示例代码。代码声明了两个Direct3d设备:ID3D11Device*g_pd3dDevice=nullptr;ID3D11Device1*g_pd3dDevice1=nullptr;然后像这样获取设备:D3D_FEATURE_LEVELfeatureLevels[]={D3D_FEATURE_LEVEL_11_1,D3D_FEATURE_LEVEL_11_0,D3D_FEATURE_LEVEL_10_1,D3D_FEATURE_LEVEL_10_0,};UINTnumFeatureLevels=ARRAYSIZE(fea

win11体验自带安卓虚拟机安装apk

首先在vmware里面安装了win11,当然是没激活的 安装完成,然后找到设置,里面的更多windows功能还是那一套,其实没啥变化 虚拟机平台果然是没有的,好吧,安装吧 然后还要安装WindowsSubsystemforAndroidMicrosoftAppsWindowsSubsystemforAndroid™https://apps.microsoft.com/store/detail/windows-subsystem-for-android%E2%84%A2-with-amazon-appstore/9P3395VX91NR?hl=en-us&gl=us 安装呗百度了一下, 打开ht

c++ - Clang 不能与 std::experimental::optional 一起正常工作

clang似乎不能与std::experimental::optional一起正常工作。考虑以下示例:#include#includestructFoo{intbar;};intmain(){Foofoo;std::experimental::optionalopt=foo;opt.value().bar=42;std::cout它在g++5.3.1版中编译良好,但在clang7.0.0版和clang7.0.2版中均无法编译。返回的错误是:Undefinedsymbolsforarchitecturex86_64:"std::experimental::bad_optional_acc

c++ - `std::shared_ptr` 的智能指针模拟,带有用于将回调绑定(bind)到引用计数修改事件的 API,例如释放/保留……这是一回事吗?

我需要一个智能指针结构-类似于std::shared_ptr-它为我提供了某种带有公开Hook的API,回调到引用计数修改事件(例如释放/保留,又名refcout增量/减量)可以绑定(bind)。我要么想自己实现,要么使用现成的东西,如果它存在的话。比如,我希望在定义这个假定的shared_ptr-ish智能指针(就像delete-expressions和deleterfunctor分别在shared_ptr和unique_ptr定义中使用。编辑(来self下面的评论)——这就是我想要这个的原因:我目前有一个Image类模板,在它的核心,有一个std::shared_ptr持有一个(可

具有返回类型推导的 C++ 11 运算符重载

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion我有一个依赖于一种类型的模板类(例如templateclassVector)。现在,我想重载算术运算符:我可以将它们与用两种不同类型实例化的Vectors一起使用;结果与模板实例类型的推导方式相同;例子:Vectorfv={1.5,2.5};Vectoriv={1,2};autos1=fv+iv;//s1MUSTbeoftypeVector=={2.5,4.5}autos2=iv+fv;/

c++ - GCC 与 VS2013 中 std::setprecision(0) 的正确行为

根据我使用的编译器,我在n=0时得到这个函数的不同输出。std::stringToStrWPrec(doublea_value,constintn){std::ostringstreamout;out(GCC)4.8.320140911(RedHat4.8.3-9)为ToStrWPrec(1.2345678,0)返回1。对于相同的代码,VS2013返回1.2346。我的问题是:setprecision的正确/标准行为是什么?什么是使用setprecision的好替代方法?这是根据下面的评论更新的代码std::stringToStrWPrec(doublea_value,constint