【发布时间】:2021-09-16 20:34:36
【问题描述】:
背景
我正在编写一个对象池。我想提供一个构造函数,它只接受默认构造的元素计数。已经有 concept 了,我想尝试使用 C++20 功能。
代码
template <typename T, std::size_t capacity>
class object_pool {
/*
storage for uninitialized objects
used flags
size
etc...
*/
public:
??? object_pool(std::size_t count = capacity) {
/* initialization */
}
};
我可以按常规方式进行 SFINAE,如下所示:
template <typename = std::enable_if_t<std::is_default_constructible_v<T>>>
object_pool(std::size_t count = capacity) {
/*...*/
}
问题
SFINAE 可以在模板类/结构的成员函数上使用概念吗?如果有,该怎么做?
【问题讨论】:
标签: c++ c++20 sfinae c++-concepts