2

尝试连接 Boost Hana 编译时字符串会在我的应用程序中产生编译器错误。是否需要激活任何特定的配置选项或需要包含标题才能使其正常工作?

这是一个例子:

#define BOOST_HANA_CONFIG_ENABLE_STRING_UDL
#include "boost/hana.hpp"

namespace hana = boost::hana;

using namespace hana::literals;

int main() {
  auto t = "left, "_s + "right"_s;
}

error: no match for ‘operator+’ (operand types are ‘boost::hana::string<'l', 'e', 'f', 't', ',', ' '>’ and ‘boost::hana::string<'r', 'i', 'g', 'h', 't'>’) 这在 GCC 6.3.1 上失败并出现错误。来自 Boost 1.62.0 的 Hana

作为旁注,将操作员替换为+失败hana::plus并出现错误hana::plus(x, y) requires 'x' to be a Monoid

4

1 回答 1

3

正如 Jason Rice 所指出的,在 Boost 1.63 中添加了对编译时字符串连接的支持

https://github.com/boostorg/hana/commit/7a3e0480d442c393ed7bcc1ca72a3e1821319ff0

于 2017-04-24T15:15:21.207 回答