小编use*_*431的帖子

为什么我不能解析这个double_?

当我将输入解析为std :: string时,我得到了字符串,但是当我将其解析为double_时,fusion struct包含一些非常小的数字而不是预期的数字.

#include <boost/spirit/include/qi.hpp>
#include <boost/fusion/include/adapt_struct.hpp>

#include <string>

// http://www.boost.org/doc/libs/1_57_0/libs/spirit/example/qi/employee.cpp

namespace FormatConverter {
    namespace qi = boost::spirit::qi;
    namespace ascii = boost::spirit::ascii;
    // TODO: should this have an initializer?
    struct asc {
        double timestamp;
    };
}

BOOST_FUSION_ADAPT_STRUCT(
    FormatConverter::asc,
      (double, timestamp)
)

namespace FormatConverter {

    template <typename Iterator>
    struct asc_parser : qi::grammar< Iterator, asc(), ascii::space_type >
    {
        asc_parser()
            : asc_parser::base_type(start) {
                timestamp %= qi::double_ ;
                start %= timestamp ;
                ;
        }
        qi::rule< Iterator, double, ascii::space_type > timestamp;
        qi::rule< Iterator, asc(), …
Run Code Online (Sandbox Code Playgroud)

c++ boost-spirit boost-spirit-qi

2
推荐指数
1
解决办法
94
查看次数

剥离/检查的惯用方法 :ok 和管道第二个 arg

我喜欢管道,Elixir 喜欢管道,但返回 {:ok, actual_return_value} 似乎也很常见。有没有用管道处理这个的习语?

我现在正在学习“Programming Elixir”,以下练习的解决方案可能是可能的,但不完整。

File.cwd()
|> IO.puts()
Run Code Online (Sandbox Code Playgroud)

我不是在寻找这个解决方案:

{:ok, ret} = File.cwd()
IO.puts(ret)
Run Code Online (Sandbox Code Playgroud)

elixir

0
推荐指数
1
解决办法
208
查看次数

标签 统计

boost-spirit ×1

boost-spirit-qi ×1

c++ ×1

elixir ×1