gpt4 book ai didi

c++ - boost::二进制<>

转载 作者:太空狗 更新时间:2023-10-29 23:34:36 29 4
gpt4 key购买 nike

boost 库中有二进制之类的东西吗?例如我想写:

binary<10101> a;

我很惭愧地承认我曾尝试找到它(Google、Boost)但没有结果。他们提到了一些关于 binary_int<> 的内容,但我既找不到它是否可用,也找不到我应该包含什么头文件;

感谢您的帮助。

最佳答案

BOOST_BINARY宏。像这样使用

int array[BOOST_BINARY(1010)];
// equivalent to int array[012]; (decimal 10)

以你的例子为例:

template<int N> struct binary { static int const value = N; };
binary<BOOST_BINARY(10101)> a;

一旦某些编译器支持 C++0x 的用户定义文字,您就可以编写

template<char... digits>
struct conv2bin;

template<char high, char... digits>
struct conv2bin<high, digits...> {
static_assert(high == '0' || high == '1', "no bin num!");
static int const value = (high - '0') * (1 << sizeof...(digits)) +
conv2bin<digits...>::value;
};

template<char high>
struct conv2bin<high> {
static_assert(high == '0' || high == '1', "no bin num!");
static int const value = (high - '0');
};

template<char... digits>
constexpr int operator "" _b() {
return conv2bin<digits...>::value;
}

int array[1010_b];

关于c++ - boost::二进制<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483378/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com