如何为bitset编写一个类似make_pair的函数
How to write a make_pair like function for bitset, make_bitset?
由于c++不能从构造函数中推断出类模板参数,作为一种解决方法,我们编写了一个make函数,如std::make_pair。
我的问题是:这对std::bitset有效吗?换句话说,我可以写一个函数make_bitset(7)返回bitset<7>?
我的尝试是:
template<size_t N>
bitset<N> make_bitset(size_t N){
return bitset<N>();
}
正如@mfontanini所说,"你不会变短的bitset<N>()
"。但是,您可以使用char const[]
初始化它。
template<size_t N>
std::bitset<N-1> make_bitset(char const (&in_string)[N])
{
return std::bitset<N-1>(in_string);
}
因此,可以不写bitset<3> my_bitset("100");
,而写auto my_bitset = make_bitset("100");
。
请注意,N
是如何被传入的类型所暗示的,而不是实际传递的类型。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 我是 C++ 的新手,我试图调用 make 一个以 2 个类作为其参数的类构造函数
- 有没有办法为 c++ 制作一个 makefile,每次使用 make 命令时都会运行该程序?
- "make"的输出是一个共享对象,而不是可执行文件
- 如何创建一个qmake函数来创建一个自定义的make目标
- GNU Make:如何在列表的每个条目前面添加一个选项
- make:设置一个复杂的先决条件列表
- 是否可以使用C++中的一个make命令,用两个不同的gcc版本编译两个不同可执行文件
- 如何使用 make 来维护一个通用的C++标头包含目录
- 在MAKE之后,如何运行一个不可执行的文件
- 关于在一个有很多子目录的项目上使用make的反馈
- 使用make将.o文件移动到一个单独的目录
- 我已经使用QtCreator导入了一个现有项目。现在它抱怨"No rule to make target 'all'."
- make SCons在一个gcc行中编译所有内容
- 我如何创建一个动态的make取决于我给它的参数