Skip to content

[0.10.6] __GNUC__ macro does not guarantee that std::scoped_ptr exists #828

Closed
@Phibonacci

Description

@Phibonacci

I compiled a GCC 7.3.0 on Centos 6 and compile my program using C++98 without the C++11 API thanks to the flag : -D_GLIBCXX_USE_CXX11_ABI=0.

The following code does not compile as scoped_ptr is not an std type.

#if __GNUC__ >= 6
typedef std::scoped_ptr<CharReader> const  CharReaderPtr;
#else
typedef std::auto_ptr<CharReader>          CharReaderPtr;
#endif

I don't know in which std version std::scoped_ptr exists but it does not seem to be part of the STL, if it was part of C++11 then a __cplusplus >= 201103L condition would solve the issue. GNUC only gives the GCC version and does not guarantee the presence of scoped_ptr.

To solve my issue I kept only the auto_ptr typedef.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions