From bd536de7b694c0a631a9024d0f54bf25f374d253 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 18 Aug 2016 17:46:03 +0200 Subject: Detect container of containers via composite value --- diagnostics/containers-of-containers.hxx | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 diagnostics/containers-of-containers.hxx diff --git a/diagnostics/containers-of-containers.hxx b/diagnostics/containers-of-containers.hxx new file mode 100644 index 0000000..0b40d3b --- /dev/null +++ b/diagnostics/containers-of-containers.hxx @@ -0,0 +1,69 @@ +// file : common/id/auto/test.hxx +// copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC +// license : GNU GPL v2; see accompanying LICENSE file + +#include +#include + +#ifdef ODB_COMPILER +# if defined(ODB_DATABASE_PGSQL) +# define BLOB_TYPE "BYTEA" +# elif defined(ODB_DATABASE_MSSQL) +# define BLOB_TYPE "VARBINARY(max)" +# else +# define BLOB_TYPE "BLOB" +# endif +#endif + +#pragma db value +struct value_cont +{ + int n; + std::vector v; +}; + +#pragma db value +struct value_blob +{ + int n; + #pragma db type(BLOB_TYPE) + std::vector v; +}; + +#pragma db object +struct object +{ + #pragma db id + int id; + + //std::vector > vv; + + std::vector vc; + std::map mc; + + std::vector vb; + std::map mb; +}; + +/* + +#include +#include + +using float3 = std::array; + +#pragma db value(float3) transient +#pragma db member(float3::e1) virtual(float) get(this[0]) set(this[0]) +#pragma db member(float3::e2) virtual(float) get(this[1]) set(this[1]) +#pragma db member(float3::e3) virtual(float) get(this[2]) set(this[2]) + +#pragma db object +struct object +{ + #pragma db id + int id; + + std::vector vf3; +}; + +*/ -- cgit v1.1