| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | auto *Variable       = "Variable"; | 
					
						
							|  |  |  | auto *u8Variable     = u8"Variable"; | 
					
						
							|  |  |  | auto *rawVariable    = R"(Variable)"; | 
					
						
							|  |  |  | auto Character       = 'c'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | auto integer         = 1; | 
					
						
							|  |  |  | auto numFloat        = 1.2f; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int function(int x) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return x; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Foo | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     void memberFunction() {} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int functionDeclaration(int x); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Foo2 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     void memberFunction(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     function(1); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct ConversionFunction { | 
					
						
							|  |  |  |     operator Foo(); | 
					
						
							|  |  |  |     operator int(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void TypeReference() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Foo foo; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void LocalVariableDeclaration() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Foo foo; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     foo.memberFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void LocalVariableFunctionArgument(Foo &foo) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     foo.memberFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Foo3 { | 
					
						
							|  |  |  |     int ClassMember; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void ClassMemberReference() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         ClassMember++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Foo4 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     void MemberFunctionReference(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void function() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         MemberFunctionReference(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Foo5 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     void StaticMethod(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void function() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         Foo5::StaticMethod(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum Enumeration | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Enumerator | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f2() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Enumeration enumeration; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     enumeration = Enumerator; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ForwardReference; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Class | 
					
						
							|  |  |  | { public: | 
					
						
							|  |  |  |     Class(); | 
					
						
							|  |  |  |     ~Class(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ForwardReference *f3() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Class ConstructorReference; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | union Union | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Union UnionDeclarationReference; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace NameSpace { | 
					
						
							|  |  |  | struct StructInNameSpace {}; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace NameSpaceAlias = NameSpace; | 
					
						
							| 
									
										
										
										
											2015-12-09 15:16:55 +01:00
										 |  |  | using NameSpace::StructInNameSpace; | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | NameSpace::StructInNameSpace foo6; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BaseClass { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual void VirtualFunction(); | 
					
						
							|  |  |  |     virtual void FinalVirtualFunction(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f8() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     BaseClass NonVirtualFunctionCall; | 
					
						
							|  |  |  |     NonVirtualFunctionCall.VirtualFunction(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     BaseClass *NonVirtualFunctionCallPointer = new BaseClass(); | 
					
						
							|  |  |  |     NonVirtualFunctionCallPointer->VirtualFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DerivedClass : public BaseClass | 
					
						
							|  |  |  | {public: | 
					
						
							|  |  |  |     void VirtualFunction() override; | 
					
						
							|  |  |  |     void FinalVirtualFunction() final; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f8(BaseClass *VirtualFunctionCallPointer) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     VirtualFunctionCallPointer->VirtualFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FinalClass final : public DerivedClass | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     void FinalClassThisCall(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f8(DerivedClass *FinalVirtualFunctionCallPointer) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     FinalVirtualFunctionCallPointer->FinalVirtualFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f9(BaseClass *NonFinalVirtualFunctionCallPointer) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonFinalVirtualFunctionCallPointer->FinalVirtualFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f10(FinalClass *ClassFinalVirtualFunctionCallPointer) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ClassFinalVirtualFunctionCallPointer->VirtualFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Operator { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Operator operator+=(const Operator &first); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Operator operator+(const Operator &first, const Operator &second); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f10() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     auto PlusOperator = Operator() + Operator(); | 
					
						
							|  |  |  |     Operator PlusAssignOperator; | 
					
						
							|  |  |  |     PlusAssignOperator += Operator(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Comment */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PreprocessorDefinition Class
 | 
					
						
							|  |  |  | #define MacroDefinition(a,b) ((a)>(b)?(a):(b))
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f11() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     MacroDefinition(2, 4); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-29 13:09:39 +01:00
										 |  |  | #include "highlightingmarks.h"
 | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | void f12() { | 
					
						
							|  |  |  | GOTO_LABEL: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     goto GOTO_LABEL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <class T> | 
					
						
							|  |  |  | void TemplateFunction(T v) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     T XXXXX = v; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | void TemplateReference() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TemplateFunction(1); | 
					
						
							|  |  |  | //    std::vector<int> TemplateIntance;
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <class T> | 
					
						
							|  |  |  | class TemplateFoo {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <class TemplateTypeParameter = Foo, int NonTypeTemplateParameter = 1, template <class> class TemplateTemplateParameter = TemplateFoo> | 
					
						
							|  |  |  | void TemplateFunction(TemplateTypeParameter TemplateParameter) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TemplateTypeParameter TemplateTypeParameterReference; | 
					
						
							|  |  |  |     auto NonTypeTemplateParameterReference = NonTypeTemplateParameter; | 
					
						
							|  |  |  |     TemplateTemplateParameter<TemplateTypeParameter> TemplateTemplateParameterReference; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void FinalClass::FinalClassThisCall() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     VirtualFunction(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-11 18:19:12 +02:00
										 |  |  | void OutputArgument(int &one, const int &two, int *three=0); | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-11 18:19:12 +02:00
										 |  |  | void f12b() | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     int One; | 
					
						
							| 
									
										
										
										
											2016-10-11 18:19:12 +02:00
										 |  |  |     OutputArgument(One, 2); | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-29 13:09:39 +01:00
										 |  |  | #include <highlightingmarks.h>
 | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define FOREACH(variable, container) \
 | 
					
						
							|  |  |  |     variable; \ | 
					
						
							|  |  |  |     auto x = container; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define foreach2 FOREACH
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-22 14:46:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | void f13() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     auto container = 1; | 
					
						
							|  |  |  |     foreach2(int index, container); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SecondArgumentInMacroExpansionIsField { | 
					
						
							|  |  |  |     int container = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void f() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         foreach2(int index, container); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef unsigned uint32; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum EnumerationType : uint32 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Other = 0, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct TypeInCast { | 
					
						
							|  |  |  |     void function(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f14() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     static_cast<void (TypeInCast::*)()>(&TypeInCast::function); | 
					
						
							|  |  |  |     reinterpret_cast<void (TypeInCast::*)()>(&TypeInCast::function); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | using IntegerAlias = int; | 
					
						
							|  |  |  | using SecondIntegerAlias = IntegerAlias; | 
					
						
							| 
									
										
										
										
											2018-01-12 09:44:05 +01:00
										 |  |  | typedef int IntegerTypedef; | 
					
						
							| 
									
										
										
										
											2015-11-17 13:33:31 +01:00
										 |  |  | using Function = void (*)(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f15() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     IntegerAlias integerAlias; | 
					
						
							|  |  |  |     SecondIntegerAlias secondIntegerAlias; | 
					
						
							|  |  |  |     IntegerTypedef integerTypedef; | 
					
						
							|  |  |  |     Function(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FriendFoo | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     friend class FooFriend; | 
					
						
							|  |  |  |     friend bool operator==(const FriendFoo &first, const FriendFoo &second); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FieldInitialization | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     FieldInitialization() : | 
					
						
							|  |  |  |         member(0) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int member; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template<class Type> | 
					
						
							|  |  |  | void TemplateFunctionCall(Type type) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     type + type; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f16() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TemplateFunctionCall(1); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <typename T> | 
					
						
							|  |  |  | class TemplatedType | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     T value = T(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f17() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TemplatedType<int> TemplatedTypeDeclaration; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-11-18 19:09:38 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | void f18() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     auto value = 1 + 2; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ScopeClass | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     static void ScopeOperator(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f19() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ScopeClass::ScopeOperator(); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-12-02 20:57:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace TemplateClassNamespace { | 
					
						
							|  |  |  | template<class X> | 
					
						
							|  |  |  | class TemplateClass | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f20() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |    TemplateClassNamespace::TemplateClass<ScopeClass> TemplateClassDefinition; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f21() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     typedef int TypeDefDeclaration; | 
					
						
							|  |  |  |     TypeDefDeclaration TypeDefDeclarationUsage; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef int EnumerationTypeDef; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum Enumeration2 : EnumerationTypeDef { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2015-12-08 16:10:18 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct Bar { | 
					
						
							|  |  |  |     Bar &operator[](int &key); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void argumentToUserDefinedIndexOperator(Bar object, int index = 3) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     object[index]; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-01-09 21:16:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct LambdaTester | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int member = 0; | 
					
						
							|  |  |  |     void func() { | 
					
						
							|  |  |  |         const int var = 42, var2 = 84; | 
					
						
							|  |  |  |         auto lambda = [var, this](int input) { | 
					
						
							|  |  |  |             return var + input + member; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |         lambda(var2); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-10-11 18:19:12 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void NonConstReferenceArgument(int &argument); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f22() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int x = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstReferenceArgument(x); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void ConstReferenceArgument(const int &argument); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f23() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int x = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ConstReferenceArgument(x); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void RValueReferenceArgument(int &&argument); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f24() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int x = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     RValueReferenceArgument(static_cast<int&&>(x)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void NonConstPointerArgument(int *argument); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f25() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int *x; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstPointerArgument(x); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-20 17:06:36 +02:00
										 |  |  | void PointerToConstArgument(const int *argument); | 
					
						
							|  |  |  | void ConstPointerArgument(int *const argument); | 
					
						
							| 
									
										
										
										
											2016-10-11 18:19:12 +02:00
										 |  |  | void f26() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int *x; | 
					
						
							| 
									
										
										
										
											2017-07-20 17:06:36 +02:00
										 |  |  |     PointerToConstArgument(x); | 
					
						
							| 
									
										
										
										
											2016-10-11 18:19:12 +02:00
										 |  |  |     ConstPointerArgument(x); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void NonConstReferenceArgumentCallInsideCall(int x, int &argument); | 
					
						
							|  |  |  | int GetArgument(int x); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f27() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int x = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstReferenceArgumentCallInsideCall(GetArgument(x), x); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f28(int &Reference) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonConstReferenceArgument(Reference); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f29() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int x; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstPointerArgument(&x); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct NonConstPointerArgumentAsMemberOfClass | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int member; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f30() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonConstPointerArgumentAsMemberOfClass instance; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstReferenceArgument(instance.member); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-12 12:16:41 +02:00
										 |  |  | struct NonConstReferenceArgumentConstructor | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonConstReferenceArgumentConstructor() = default; | 
					
						
							|  |  |  |     NonConstReferenceArgumentConstructor(NonConstReferenceArgumentConstructor &other); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void NonConstReferenceArgumentMember(NonConstReferenceArgumentConstructor &other); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f31() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonConstReferenceArgumentConstructor instance; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstReferenceArgumentConstructor copy(instance); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-11-23 16:10:20 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct NonConstReferenceMemberInitialization | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonConstReferenceMemberInitialization(int &foo) | 
					
						
							|  |  |  |         : foo(foo) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int &foo; | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2017-06-01 09:58:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | template<class T> class Coo; | 
					
						
							|  |  |  | template<class T> class Coo<T*>; | 
					
						
							| 
									
										
										
										
											2017-06-01 11:00:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace N { void goo(); } | 
					
						
							|  |  |  | using N::goo; | 
					
						
							| 
									
										
										
										
											2017-06-13 13:55:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if 1
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <new>
 | 
					
						
							| 
									
										
										
										
											2017-06-15 14:28:45 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct OtherOperator { void operator()(int); }; | 
					
						
							|  |  |  | void g(OtherOperator o, int var) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     o(var); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-07-20 17:59:35 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void NonConstPointerArgument(int &argument); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct PointerGetterClass | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int &getter(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void f32() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     PointerGetterClass x; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NonConstPointerArgument(x.getter()); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-08-10 15:24:50 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace N { template <typename T> void SizeIs(); } | 
					
						
							|  |  |  | using N::SizeIs; | 
					
						
							| 
									
										
										
										
											2016-07-17 00:29:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void BaseClass::VirtualFunction() {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class WithVirtualFunctionDefined { | 
					
						
							|  |  |  |   virtual void VirtualFunctionDefinition() {}; | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2018-01-12 09:44:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace NFoo { namespace NBar { namespace NTest { class NamespaceTypeSpelling; } } } | 
					
						
							| 
									
										
										
										
											2018-02-07 11:58:23 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-15 13:35:38 +01:00
										 |  |  | Undeclared u; | 
					
						
							| 
									
										
										
										
											2018-11-22 15:39:37 +01:00
										 |  |  | #define Q_PROPERTY(arg) static_assert("Q_PROPERTY", #arg); // Keep these in sync with wrappedQtHeaders/QtCore/qobjectdefs.h
 | 
					
						
							|  |  |  | #define SIGNAL(arg) #arg
 | 
					
						
							|  |  |  | #define SLOT(arg) #arg
 | 
					
						
							| 
									
										
										
										
											2018-01-26 15:12:38 +01:00
										 |  |  | class Property { | 
					
						
							|  |  |  |     Q_PROPERTY(const volatile unsigned long long * prop READ getProp WRITE setProp NOTIFY propChanged) | 
					
						
							|  |  |  |     Q_PROPERTY(const QString str READ getStr) | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2018-04-06 14:07:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-05 15:29:10 +01:00
										 |  |  | struct X { | 
					
						
							|  |  |  |     void operator*(int) {} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void operator*(X, float) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void CallSite() { | 
					
						
							|  |  |  |     X x; | 
					
						
							|  |  |  |     int y = 10; | 
					
						
							|  |  |  |     float z = 10; | 
					
						
							|  |  |  |     x * y; | 
					
						
							|  |  |  |     x * z; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Dummy { | 
					
						
							|  |  |  |     Dummy operator<<=(int key); | 
					
						
							|  |  |  |     Dummy operator()(int a); | 
					
						
							|  |  |  |     int& operator[] (unsigned index); | 
					
						
							|  |  |  |     void* operator new(unsigned size); | 
					
						
							|  |  |  |     void operator delete(void* ptr); | 
					
						
							|  |  |  |     void* operator new[](unsigned size); | 
					
						
							|  |  |  |     void operator delete[](void* ptr); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void TryOverloadedOperators(Dummy object) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     object <<= 3; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Dummy stacked; | 
					
						
							|  |  |  |     stacked(4); | 
					
						
							|  |  |  |     stacked[1]; | 
					
						
							|  |  |  |     int *i = new int; | 
					
						
							|  |  |  |     Dummy* use_new = new Dummy(); | 
					
						
							|  |  |  |     delete use_new; | 
					
						
							|  |  |  |     Dummy* many = new Dummy[10]; | 
					
						
							|  |  |  |     delete [] many; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-06 14:07:35 +02:00
										 |  |  | enum { | 
					
						
							|  |  |  |     Test = 0 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace { | 
					
						
							|  |  |  | class B { | 
					
						
							|  |  |  |     struct { | 
					
						
							|  |  |  |         int a; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-11-05 15:29:10 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct Dummy2 { | 
					
						
							|  |  |  |     Dummy2 operator()(); | 
					
						
							|  |  |  |     int operator*(); | 
					
						
							|  |  |  |     Dummy2 operator=(int foo); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void TryOverloadedOperators2(Dummy object) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Dummy2 dummy2; | 
					
						
							|  |  |  |     dummy2(); | 
					
						
							|  |  |  |     *dummy2; | 
					
						
							|  |  |  |     dummy2 = 3; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2018-04-23 12:06:12 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | int OperatorTest() { | 
					
						
							|  |  |  |     return 1 < 2 ? 20 : 30; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int signalSlotTest() { | 
					
						
							|  |  |  |     SIGNAL(something(QString)); | 
					
						
							|  |  |  |     SLOT(something(QString)); | 
					
						
							|  |  |  |     SIGNAL(something(QString (*func1)(QString))); | 
					
						
							| 
									
										
										
										
											2018-08-22 17:25:12 +02:00
										 |  |  |     1 == 2; | 
					
						
							| 
									
										
										
										
											2018-04-23 12:06:12 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-11-22 14:37:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class NonConstParameterConstructor | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     NonConstParameterConstructor() = default; | 
					
						
							|  |  |  |     NonConstParameterConstructor(NonConstParameterConstructor &buildDependenciesStorage); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void Call() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         NonConstParameterConstructor foo; | 
					
						
							|  |  |  |         NonConstParameterConstructor bar(foo); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2019-03-12 13:55:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class StaticMembersAccess | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     static int protectedValue; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     static int privateValue; | 
					
						
							|  |  |  | }; |