[英]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.