C++ 在分配器实现中使用提示参数的示例
标准分配器可以选择提示作为默认参数 撇开这一点不谈,C++20中正式反对使用它(这显然并不意味着分配器不能有hint参数): 您知道在现有代码或理论代码的标准或非标准分配器实现中,C++ 在分配器实现中使用提示参数的示例,c++,allocator,hint,C++,Allocator,Hint,标准分配器可以选择提示作为默认参数 撇开这一点不谈,C++20中正式反对使用它(这显然并不意味着分配器不能有hint参数): 您知道在现有代码或理论代码的标准或非标准分配器实现中,提示的良好用途吗?还是普通的历史遗迹? 我试图理解当您有多个设备(如gpu)时,当前提示是否有助于分配 注1: 我不是在问如何在cpu或GPU中分配内存,我只是想看看内部使用这个hint参数的好的或经过验证的代码,大概是效率和特定类型的内存。 即使它是一个奇异的系统 注2: 我不是问如何/如果/传递什么作为提示的参数(
提示的良好用途吗?还是普通的历史遗迹?
我试图理解当您有多个设备(如gpu)时,当前提示是否有助于分配
注1:
我不是在问如何在cpu或GPU中分配内存,我只是想看看内部使用这个hint
参数的好的或经过验证的代码,大概是效率和特定类型的内存。
即使它是一个奇异的系统
注2:
我不是问如何/如果/传递什么作为提示的参数(即“只传递容器的当前指针”),就像在链接的问题中一样。
我是从某人实现自定义分配器的角度提出的问题。为什么不说它不受欢迎呢?如果有好的用例,它不会被弃用,不是吗?这回答了你的问题吗@谢谢你的链接。唯一具体的例子是第一个答案(殖民地)。它似乎盲目地使用了std分配器的提示,仅仅这样做就获得了更好的性能。我是从分配器(例如,特殊内存,例如共享内存、映射内存或gpu)的实现者的角度提问的。@maxed_prime_是_463035818显然,对于分配器来说,弃用并不意味着该功能被删除,但该功能不是成为标准分配器所必需的。例如,分配器特性将继续接受提示。如果无法通过,则忽略它。谢谢,现在我明白了。似乎我没有理解“这显然并不意味着分配器不能得到提示”的含义
T* allocate( std::size_t n, const void * hint);