【问题标题】:boost/assign.hpp fails in Xcode 6.3boost/assign.hpp 在 Xcode 6.3 中失败
【发布时间】:2015-06-26 06:56:40
【问题描述】:
#include <boost/range/adaptors.hpp>
#include <boost/assign.hpp>
#include <iostream>
using namespace boost::adaptors;
using namespace boost::assign;

template<int N>
struct factorial
{
    enum {
        value = N * factorial<N-1>::value
    };
};

template<>
struct factorial<0>
{
    enum {
        value = 1
    };

};

int main()
{
    typedef std::map<uint64_t, std::string> map_type;

    map_type const map_obj = {
        { 0x0000000000000401, "one"   },
        { 0x0000000000000002, "two"   },
        { 0x0000000000000003, "three" },
        { 0x0000000000000404, "four"  },
        { 0x0000000000000005, "five"  },
    };

    const int mask_value = 0x000000000000FF00;

    auto func = [](const map_type::value_type& p)
                    {
                        std::cout << " value_type.second: " << p.second << "\n";
                        return (p.first & mask_value) != 0;
                    };

    for(const auto&v : map_obj | filtered(func) | map_values)
    {
        std::cout << " Got: " << v <<"\n" ;
    }
    std::cout << " 5!: " << factorial<5>::value << "\n";
}

上面的示例代码用于在 Xcode 中编译,但在 Xcode 6.3 中,它无法在 main 函数的开头编译 map obj 的初始化列表。提升标头没有任何抱怨。有什么想法,为什么?

【问题讨论】:

  • 下次请在点击“”之前至少看一眼帖子预览。你的不可读。
  • "编译失败" 我们是否应该猜测编译错误?你的编译命令呢?
  • 这是 Xcode - 没有编译命令。什么是不可读的 - 它的格式正确,问题在代码的末尾。!
  • Xcode 运行编译命令。至于格式,是的,它的格式是正确的,因为我修好了!!查看修订历史记录。

标签: c++ boost xcode6.3


【解决方案1】:

哦,错误是链接时间错误,我的 boost 是使用 libc++ 构建的,而不是使用 libstdc++。切换库有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多