gpt4 book ai didi

c++ - 如何将编译时字符串 (BOOST_METAPARSE_STRING) 转换为运行时字符串?

转载 作者:行者123 更新时间:2023-11-28 01:25:08 26 4
gpt4 key购买 nike

如何将 BOOST_METAPARSE_STRING 编译时模板参数转换为“常规”字符串?

我正在使用 BOOST_METAPARSE_STRING 提供一个字符串作为模板参数(一次性/单行)。以下编译正常:

template<class T>
struct t{
};

t< BOOST_METAPARSE_STRING("hello") > tt_;

但是我还需要在某些时候显示字符串等,而且我还没有找到一种方法来构造某种形式的运行时字符串,std::string/来自编译时类型。我知道这是可能的,但是怎么做呢?

此外,我想知道是否可以作为模板参数值传递(例如 const char*)?

最佳答案

根据 the documentation对于 BOOST_METAPARSE_STRING,它生成 boost::metaparse::string 的特化(记录在 here 中)。由于这是一个简单的类模板,因此很容易转换:

template <char... Chars>
std::string toString(boost::metaparse::string<Chars...>) {
return {Chars...};
}

See it live on Coliru


或者,如果您不想在查看文档之前重新发明轮子(咳咳),那就是 boost::mpl::c_str

关于c++ - 如何将编译时字符串 (BOOST_METAPARSE_STRING) 转换为运行时字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54198925/

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