How to use the SWIFT_NONCOYABLE MACRO and in which heeader file it[s] present

Hi,

I was exploring the interoperability flexibility which the new direct c++ to swift Interop provide[s]. In the Documentation it[s] mentioned here

QUOTE

C++ structures and classes with a deleted copy constructor are represented as non-copyable Swift types (~Copyable). If a C++ type has a valid copy constructor, it is still possible to make it non-copyable in Swift by annotating it with a SWIFT_NONCOPYABLE macro.

UNQUOTE

First of all i am not able to find the Macro is present in which header file, swift provided MACRO[S] are present in "swift/bridging" contains macros like SWIFT_MUTATING, SWIFT_IMMORTAL_REFERENCE etc.

Then I tried to delete the CopyConstructor of a C++ Class in order to see what would happen if i do it manually. But if the copy constructor of my class get[s] deleted then it doesn't get exposed to Swift.

class CppSwiftInteropTest {
   
public:
    
    CppSwiftInteropTest () {
        
        std::cout << "CppConstructor" << std::endl;
    }
    
    CppSwiftInteropTest (const CppSwiftInteropTest & pCppClass) = delete;
   
...
};

Please share how can i achieve my objective.

I use the SWIFT_NONCOPYABLE macro in prod and it works fine.
Did you double check yo