小编mon*_*jet的帖子

C++ Json Boost 值转换为字符串

我有使用 Boost 库的简单 C++ 代码:

auto jsonStringPtr = jsonValuePtr->if_string();
Run Code Online (Sandbox Code Playgroud)

如何将此值转换为不带引号的 std::string ?

我测试了这段代码:

std::string myString = boost::json::serialize(*jsonStringPtr);
Run Code Online (Sandbox Code Playgroud)

但它包含引号,例如“abc”插入 abc...有什么想法吗?

#编辑

  • 增强:v1.76.0
  • C++:20

例子:

boost::json::error_code errorCode;
boost::json::value jsonValue = boost::json::parse("{\"fff\": \"abc\"}", errorCode);

auto jsonString = jsonValue.as_object()["fff"].as_string();
std::string myString = boost::json::serialize(jsonString);
Run Code Online (Sandbox Code Playgroud)

c++ json boost

4
推荐指数
1
解决办法
5216
查看次数

反射 TS - 在 C++23 中?

反射 TS - 此处描述的 C++ 功能:https : //en.cppreference.com/w/cpp/keyword/reflexpr

我正在寻找有关此功能的任何信息。

我有这个描述编译器支持的表:https : //en.cppreference.com/w/cpp/compiler_support

但我没有看到此功能是计划中的,或者此功能的名称可能不同?

哪个 C++ 版本将支持此功能?

我在哪里可以找到有关此主题的任何教程/信息?

c++ c++23

3
推荐指数
1
解决办法
140
查看次数

用于加速模板函数的 C++ 模块

一般来说,使用函数模板会使编译时间显着延长。

一位朋友建议我检查模块(C++20)进行优化。

我认为这根本不会影响编译速度。

我不知道如何测试这个,所以我在这里问。

下面的代码会以某种方式神奇地优化构建过程吗?

定义仍然需要创建和编译,所以不会有任何区别?

数学.xxx:

module; 
#include <typeinfo>

export module math;
import <iostream>;

export 
template<typename T>
T square(T x) {
  std::cout << typeid(T).name() << std::endl;
  return x * x;
}
Run Code Online (Sandbox Code Playgroud)

主程序

import math;

void main() {
  square(int());
  square(double());
}
Run Code Online (Sandbox Code Playgroud)

c++ templates c++20 c++-modules

3
推荐指数
1
解决办法
808
查看次数

标签 统计

c++ ×3

boost ×1

c++-modules ×1

c++20 ×1

c++23 ×1

json ×1

templates ×1