0
当“内部”局部变量隐藏“外部”局部变量时,我在Boost Phoenix中嵌套的let块出现问题。即使从文档here的“能见度”的例子,如下所示:变量隐藏在Boost Phoenix中的嵌套let块中
#include <iostream>
#include <boost/phoenix.hpp>
namespace phoenix = boost::phoenix;
using namespace phoenix::local_names;
int main(int argc, char *argv[])
{
phoenix::let(_x = 1, _y = ", World")
[
phoenix::let(_x = "Hello") // hides the outer _x
[
std::cout << _x << _y // prints "Hello, World"
]
]();
return 0;
}
我收到错误开始:
GCC: "error: function returning an array"
Clang: "error: function cannot return array type 'result_type' (aka 'char [6]')"
有谁知道我能“影子”这样的范围内变化菲尼克斯的一个内部区块?我目前正在使用Ubuntu 13.04和GCC版本4.8快照; Clang 3.2;升压1.49;并且还提升了1.53。
当然可以。感谢您的意见。 – user2023370 2013-05-07 20:43:18
该错误现已提交[此处](https://svn.boost.org/trac/boost/ticket/8564) – user2023370 2013-05-11 23:42:25