Skip to content

<xfacet>: Consider remove <yvals.h> inclusion #5447

@frederick-vs-ja

Description

@frederick-vs-ja

<xfacet> is built into the import library. However, currently it includes <yvals.h> and thus not a core header.

It seems that <xfacet> only needs to obtain these macro definitions from <yvals.h>:

STL/stl/inc/yvals.h

Lines 315 to 331 in b5df16a

#ifndef _CRTIMP2_PURE
#ifdef _M_CEE_PURE
#define _CRTIMP2_PURE
#else
#define _CRTIMP2_PURE _CRTIMP2
#endif
#endif // !defined(_CRTIMP2_PURE)
#ifndef _CRTIMP2_IMPORT
#if defined(CRTDLL2) && defined(_CRTBLD)
#define _CRTIMP2_IMPORT __declspec(dllexport)
#elif defined(_DLL) && !defined(_STATIC_CPPLIB)
#define _CRTIMP2_IMPORT __declspec(dllimport)
#else // ^^^ defined(_DLL) && !defined(_STATIC_CPPLIB) / !defined(_DLL) || defined(_STATIC_CPPLIB) vvv
#define _CRTIMP2_IMPORT
#endif // ^^^ !defined(_DLL) || defined(_STATIC_CPPLIB) ^^^
#endif // !defined(_CRTIMP2_IMPORT)

So I guess it's feasible to make <xfacet> a core header.

Likewise, awint.hpp only needs _CRTIMP2 from <crtdefs.h>, so it might also be possible to make it core (see also #5444). However, I'm not sure whether <crtdefs.h> is suitable for core-ness.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementSomething can be improvedwontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions