//
// NamedTuple.h
//
// Library: Foundation
// Package: Core
// Module: NamedTuple
//
// Definition of the NamedTuple class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Foundation_NamedTuple_INCLUDED
#define Foundation_NamedTuple_INCLUDED
#include "Poco/Foundation.h"
#include "Poco/Tuple.h"
#include "Poco/TypeList.h"
#include "Poco/DynamicAny.h"
#include "Poco/SharedPtr.h"
#include "Poco/Format.h"
namespace Poco {
template<class T0,
class T1 = NullTypeList,
class T2 = NullTypeList,
class T3 = NullTypeList,
class T4 = NullTypeList,
class T5 = NullTypeList,
class T6 = NullTypeList,
class T7 = NullTypeList,
class T8 = NullTypeList,
class T9 = NullTypeList,
class T10 = NullTypeList,
class T11 = NullTypeList,
class T12 = NullTypeList,
class T13 = NullTypeList,
class T14 = NullTypeList,
class T15 = NullTypeList,
class T16 = NullTypeList,
class T17 = NullTypeList,
class T18 = NullTypeList,
class T19 = NullTypeList>
struct NamedTuple: public Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>
{
typedef Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19> TupleType;
typedef typename Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::Type Type;
typedef std::vector<std::string> NameVec;
typedef SharedPtr<NameVec> NameVecPtr;
NamedTuple(): _pNames(0)
{
init();
}
NamedTuple(const NameVecPtr& rNames)
{
if (rNames->size() != TupleType::length)
throw InvalidArgumentException("Wrong names vector length.");
_pNames = rNames;
}
NamedTuple(typename TypeWrapper<T0>::CONSTTYPE& t0,
typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1),
typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2),
typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3),
typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4),
typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5),
typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6),
typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7),
typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8),
typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9),
typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10),
typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11),
typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12),
typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13),
typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14),
typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15),
typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16),
typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17),
typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18),
typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19)):
TupleType(t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19),
_pNames(0)
{
init();
}
NamedTuple(const NameVecPtr& rNames,
typename TypeWrapper<T0>::CONSTTYPE& t0,
typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1),
typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2),
typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3),
typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4),
typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5),
typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6),
typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7),
typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8),
typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9),
typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10),
typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11),
typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12),
typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13),
typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14),
typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15),
typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16),
typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17),
typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18),
typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19)):
TupleType(t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19)
{
if (rNames->size() != TupleType::length)
throw InvalidArgumentException("Wrong names vector length.");
_pNames = rNames;
}
NamedTuple(const std::string& n0,
typename TypeWrapper<T0>::CONSTTYPE& t0,
const std::string& n1 = "B",
typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1),
const std::string& n2 = "C",
typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2),
const std::string& n3 = "D",
typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3),
const std::string& n4 = "E",
typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4),
const std::string& n5 = "F",
typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5),
const std::string& n6 = "G",
typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6),
const std::string& n7 = "H",
typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7),
const std::string& n8 = "I",
typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8),
const std::string& n9 = "J",
typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9),
const std::string& n10 = "K",
typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10),
const std::string& n11 = "L",
typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11),
const std::string& n12 = "M",
typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12),
const std::string& n13 = "N",
typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13),
const std::string& n14 = "O",
typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14),
const std::string& n15 = "P",
typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15),
const std::string& n16 = "Q",
typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16),
const std::string& n17 = "R",
typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17),
const std::string& n18 = "S",
typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18),
const std::string& n19 = "T",
typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19)):
TupleType(t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19),
_pNames(0)
{
init(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19);
}
const DynamicAny get(const std::string& name) const
{
NameVec::const_iterator it = _pNames->begin();
NameVec::const_iterator itEnd = _pNames->end();
for(std::size_t counter = 0; it != itEnd; ++it, ++counter)
{
if (name == *it)
{
switch (counter)
{
case 0: return TupleType::template get<0>();
case 1: return TupleType::template get<1>(
没有合适的资源?快使用搜索试试~ 我知道了~
基于ubuntu16.04编译的Poco库
Poco库版本:1.8.0.1
POCO库是强大的的跨平台C++库,可以用来编写多平台的网络应用程序,这些平台包括桌面端、服务端、移动端、IOT(物联网)、嵌入式系统等。总的来说是一个非常强大的综合性库。
Poco库的官网地址:https://pocoproject.org/index.html
Poco库的项目地址:https://github.com/pocoproject/poco/tree/master
收起资源包目录
基于ubuntu16.04编译的Poco库 (797个子文件)
libPocoDatad.so.50 14.42MB
libPocoFoundationd.so.50 11.03MB
libPocoNetd.so.50 7.81MB
libPocoDataSQLited.so.50 4MB
libPocoXMLd.so.50 3.88MB
libPocoUtild.so.50 3.62MB
libPocoZipd.so.50 2.78MB
libPocoNetSSLd.so.50 2.48MB
libPocoJSONd.so.50 2.45MB
libPocoData.so.50 2.2MB
libPocoFoundation.so.50 2.02MB
libPocoMongoDBd.so.50 1.77MB
libPocoCryptod.so.50 1.45MB
libPocoNet.so.50 1.22MB
libPocoDataSQLite.so.50 1.1MB
libPocoRedisd.so.50 1018KB
libPocoXML.so.50 667KB
libPocoUtil.so.50 483KB
libPocoJSON.so.50 348KB
libPocoZip.so.50 317KB
libPocoNetSSL.so.50 310KB
libPocoCrypto.so.50 233KB
libPocoMongoDB.so.50 228KB
libPocoRedis.so.50 175KB
libPocoDatad.a 30.22MB
libPocoFoundationd.a 24.88MB
libPocoNetd.a 20.2MB
libPocoXMLd.a 8.84MB
libPocoUtild.a 8.28MB
libPocoZipd.a 7.09MB
libPocoDataSQLited.a 6.62MB
libPocoData.a 6.08MB
libPocoJSONd.a 6.06MB
libPocoNetSSLd.a 6.05MB
libPocoMongoDBd.a 4.53MB
libPocoFoundation.a 4.52MB
libPocoNet.a 3.69MB
libPocoCryptod.a 3.63MB
libPocoRedisd.a 2.17MB
libPocoDataSQLite.a 1.94MB
libPocoXML.a 1.41MB
libPocoJSON.a 1.24MB
libPocoUtil.a 1.15MB
libPocoMongoDB.a 844KB
libPocoNetSSL.a 828KB
libPocoZip.a 790KB
libPocoRedis.a 515KB
libPocoCrypto.a 505KB
NamedTuple.h 135KB
zlib.h 94KB
TypeHandler.h 80KB
VarHolder.h 68KB
Logger.h 57KB
Tuple.h 54KB
Var.h 54KB
expat.h 41KB
Units.h 32KB
Binding.h 31KB
NumberFormatter.h 28KB
Statement.h 22KB
SSLManager.h 18KB
Extraction.h 18KB
RecordSet.h 17KB
Application.h 17KB
String.h 17KB
StatementImpl.h 17KB
AbstractEvent.h 16KB
zconf.h 16KB
XMLStreamParser.h 16KB
SocketImpl.h 15KB
NumericString.h 15KB
Session.h 15KB
Socket.h 14KB
FIFOBuffer.h 14KB
Context.h 14KB
AbstractConfiguration.h 14KB
IPAddress.h 14KB
XMLWriter.h 14KB
Object.h 13KB
Any.h 13KB
URI.h 13KB
FTPClientSession.h 13KB
ZipLocalFileHeader.h 13KB
ZipFileInfo.h 13KB
Path.h 12KB
AbstractBinder.h 12KB
PriorityDelegate.h 12KB
HTTPClientSession.h 11KB
ParserEngine.h 11KB
AbstractPreparator.h 11KB
Node.h 11KB
ContentHandler.h 11KB
RegularExpression.h 11KB
LinearHashTable.h 11KB
ZipArchiveInfo.h 11KB
NetworkInterface.h 11KB
FileChannel.h 11KB
SocketDefs.h 11KB
AbstractExtractor.h 11KB
LocalDateTime.h 11KB
共 797 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源推荐
资源预览
资源评论
2019-03-29 上传
102 浏览量
2022-03-24 上传
2018-10-10 上传
5星 · 资源好评率100%
198 浏览量
2019-04-16 上传
2019-06-24 上传
159 浏览量
5星 · 资源好评率100%
185 浏览量
2018-10-30 上传
2023-12-21 上传
5星 · 资源好评率100%
2022-03-02 上传
2021-12-06 上传
2018-02-24 上传
5星 · 资源好评率100%
172 浏览量
2019-03-23 上传
2019-10-31 上传
5星 · 资源好评率100%
135 浏览量
2022-06-21 上传
138 浏览量
2016-11-17 上传
5星 · 资源好评率100%
2016-11-18 上传
资源评论
不会抓狼的羊
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 中兴F50随身WiFi工具箱
- 前端分析-2023071100789
- 前端分析-2023071100789
- S120通过111报文实现基本定位功能.mp4
- Labview2019版本,集成了欧姆龙全系列PLC,西门子全系列plc,三菱TCP IP通讯 所有相对应的函数模块,可以直接调用,也用当前程序作为调试软件
- 基于web的智慧养老管理系统(源码+数据库)161134
- CHSI_APP_0.9.14.16.apk
- Comsol光学仿真模型:包括纳米球 柱 Mie散射多级分解
- 前端分析-2023071100789
- 基于vsg 控制的matlab仿真模型,有负载切,能完美运行供学习参考
- 智慧养老管理系统(源码+数据库)161134
- 【百字作文联盟】百字作文寒假作业.zip
- 基于IEEE33节点的配电网重构,采用最优流法(和粒子群算法)开展了配电网重构工作,得到重构方案,应打开的开关数等,同时对比了重构前后的网损和电压结果
- 用python制作简单的大鱼吃小鱼游戏
- 基于粒子群算法的配电网无功优化 基于IEEE33节点配电网,以无功补偿器的接入位置和容量作为优化变量,以牛拉法进行潮流计算,以配电网网损最小为优化目标,通过优化求解,得到最佳接入位置和容量,优化结果
- Labview打地鼠游戏
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功