簡體   English   中英

具有已定義的操作重載的c ++無類型值對象/變量庫

[英]c++ untyped value object/variable library with defined operation overloads

我不知道如何定義我正在搜索的內容,但是,我在這里:由於庫libjsoncpp存在並且讓我們在“基於json”的對象中保存一個值,這意味着一個整數,一個無符號數,double,string或null ...(也可以看到數組和對象 - 或者我認為 - 作為基於指針的對象到其他對象),

...是否有任何類型的庫我們可以使用這些數據,或多或少像我們在javascript中那樣操作?

#include "somemagiclib.h"

magicnamespace::jsonlike_o value1=10;
int integervalue=15;
magicnamespace::jsonlike_o value2="hello_world";
std::string anything="anything";
magicnamespace::jsonlike_o value3="10.3";
magicnamespace::jsonlike_b result;

value3=value2+value1;
std::cout << "value3 is: " << value3.asString() << std::endl;
   /*value3 is: 21*/
std::cout << (value2+value1).asString() << std::endl;
   /*hello_world10*/
std::cout << (value1+value3).asString() << std::endl;
   /*20*/
std::cout << (value3+value1).asString() << std::endl;
   /*10.310*/
std::cout << (value1<value3).asString() << std::endl;
   /*true*/
std::cout << (value1+integervalue).asString() << std::endl;
   /*25*/
std::cout << (value1+anything).asString() << std::endl;
   /*18*/
std::cout << (value1>=integervalue).asString() << std::endl;
   /*false*/
std::cout << (value2+integervalue).asString() << std::endl;
   /*hello_world15*/
std::cout << (value2+anything).asString() << std::endl;
   /*hello_worldanything*/

我們可以很容易地達到問題“為什么?” (...甚至“wtf for?”)。 實際上,我正在開發一個項目,該項目需要json處理的一部分來比較從串行協議中傳輸的基於部分的端口獲得的值,與從基於json的配置文件獲得的值進行比較。

能夠編碼或預覽未來場景變得困難,因為我們還必須預測來自基於JsonRPC的對象的傳入值,因此生成或維護代碼可能變得昂貴。

你知道是否有任何類型的庫在C ++中實現這種“非類型”類型? 如果不知道,你認為這種圖書館值得創作嗎?

非常感謝您的關注。

看看crow c ++。 它不僅僅是json的東西,它幾乎是c ++的瓶子。 可能有用。 它也只是一個頭文件,所以不需要安裝等

暫無
暫無

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

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