<div dir="ltr"><div style="padding:0px;margin-top:0px;margin-right:0px;margin-bottom:0px">Hello again! It seems that the system failed to extract text from my previous post. This is my first time using a mailing list, so please excuse me for my mistakes. Here are the original contents of that post:</div><div style="padding:0px;margin-top:0px;margin-right:0px;margin-bottom:0px"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">Hello,<br><br>I’ve been trying to do some code generation using clang (not libclang), and want to find out if a class can be copy constructed.<br><br>I’ve tried testing if the copy constructor is deleted, but this does not work well with templates. For example, I have a class that contains a std::vector<std::unique_ptr>, whose copy constructor will apparently fail to instantiate, but doesn’t cause the copy constructors of std::vector or my class to be marked as deleted. Also, isInvalidDecl() returns false, which (I think) means that the compiler didn’t even attempt to instantiate the constructor as it has never been used.<br><br>I believe that my best bet is to try to manually check if the constructor can instantiate. I’ve looked at clang::Sema, but was overwhelmed by the large amount of functions. I also noticed that a lot of these functions seem to have side effects, which is undesired since I do not want this check to cause other parts of the code to not compile.<br><br>Am I on the right path? If so, which functions in clang::Sema should I use, and how? If not, is there a better way?<br><br>Thank you very much.<br></blockquote><br></div></div>