Giter Site home page Giter Site logo

Rtti usage on demand about libpqxx HOT 6 CLOSED

Balalarga avatar Balalarga commented on June 16, 2024
Rtti usage on demand

from libpqxx.

Comments (6)

jtv avatar jtv commented on June 16, 2024

That's annoying: Technically nothing here actually requires RTTI, but it requires the compiler's RTTI support. The typeid operator used here is the one that takes a type, which is evaluated at compile time.

I think it would be possible to work around this without losing any functionality: we'll need a second version of PQXX_DECLARE_ENUM where the caller provides a human-readable name for the type. (Well, or an optional second argument but that only works in C++20 and is also just too ugly for this situation.) And then we'll need to make sure that libpqxx defines explicit names for all the types that need them.

from libpqxx.

jtv avatar jtv commented on June 16, 2024

Correction. I don't see any problem with PQXX_DECLARE_ENUM, so no need to change that. Unfortunately my compilers don't provide any information at all about which types trigger the error.

from libpqxx.

jtv avatar jtv commented on June 16, 2024

@Balalarga what exactly makes you say the problem happens with enum types? It now looks to me more like it happens with non-enum types.

from libpqxx.

Balalarga avatar Balalarga commented on June 16, 2024

@Balalarga what exactly makes you say the problem happens with enum types? It now looks to me more like it happens with non-enum types.

Thank you for the answer
I'm trying to use your lib with UnrealEngine, and cannot cross compile Linux build. And i haven't wrote any code, except of connection.
After a small research, i found clang do not support RTTI by default and it should be recompiled manually. Maybe it happen only with EpicGames's toolchain, but i haven't figure it out yet.
Also MSVC compile it well with disabled rtti

from libpqxx.

jtv avatar jtv commented on June 16, 2024

You could try defining a constant pqxx::type_name<A_TYPE> for every type that's likely to need it, very early on in the source, specialising the template that's in strconv.hxx. But I tried that and it didn't work.

Or perhaps it would be possible to enable RTTI by passing -frtti on the compiler command line.

from libpqxx.

Balalarga avatar Balalarga commented on June 16, 2024

kk, thanks.
I'll enable rtti and hide all pqxx code inside a higher-level wrapper!!

from libpqxx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.