簡體   English   中英

如何將std :: string轉換為boost :: chrono :: nanoseconds

[英]how to convert std::string to boost::chrono::nanoseconds

我試過從std :: string和long long進行詞法轉換。 都給出零值。 有任何想法嗎?

boost::lexical_cast<boost::chrono::nanoseconds>(value) //value can be of std::string or long long type

首先嘗試對字符串使用詞法轉換,以查看期望的結果:

#include <iostream>
#include <string>
#include "boost/lexical_cast.hpp"
#include "boost/chrono.hpp"

int main()
{
    boost::chrono::nanoseconds test1{1000}; // could use long long here directly
    auto text = boost::lexical_cast<std::string>(test1);
    std::cout << text << '\n';
    auto val = boost::lexical_cast<boost::chrono::nanoseconds>(text);
    std::cout << val << '\n';
}

印刷品:

1000 nanoseconds
1000 nanoseconds

時間單位未定義輸入/輸出流。

只需先轉換為ull即可:

boost::chrono::nanoseconds(boost::lexical_cast<uint64_t>(value))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM