@@ -173,7 +173,7 @@ class BuiltInOperationHasAssign extends BuiltInOperation, @hasassignexpr {
173
173
*
174
174
* Returns `true` if the type has a copy constructor.
175
175
* ```
176
- * std::integral_constant< bool, __has_copy(_Tp)> hc;
176
+ * std::integral_constant<bool, __has_copy(_Tp)> hc;
177
177
* ```
178
178
*/
179
179
class BuiltInOperationHasCopy extends BuiltInOperation , @hascopyexpr {
@@ -189,7 +189,7 @@ class BuiltInOperationHasCopy extends BuiltInOperation, @hascopyexpr {
189
189
* Returns `true` if a copy assignment operator has an empty exception
190
190
* specification.
191
191
* ```
192
- * std::integral_constant< bool, __has_nothrow_assign(_Tp)> hnta;
192
+ * std::integral_constant<bool, __has_nothrow_assign(_Tp)> hnta;
193
193
* ```
194
194
*/
195
195
class BuiltInOperationHasNoThrowAssign extends BuiltInOperation , @hasnothrowassign {
@@ -220,7 +220,7 @@ class BuiltInOperationHasNoThrowConstructor extends BuiltInOperation, @hasnothro
220
220
*
221
221
* Returns `true` if the copy constructor has an empty exception specification.
222
222
* ```
223
- * std::integral_constant< bool, __has_nothrow_copy(MyType) >;
223
+ * std::integral_constant<bool, __has_nothrow_copy(MyType) >;
224
224
* ```
225
225
*/
226
226
class BuiltInOperationHasNoThrowCopy extends BuiltInOperation , @hasnothrowcopy {
@@ -266,7 +266,7 @@ class BuiltInOperationHasTrivialConstructor extends BuiltInOperation, @hastrivia
266
266
*
267
267
* Returns true if the type has a trivial copy constructor.
268
268
* ```
269
- * std::integral_constant< bool, __has_trivial_copy(MyType) > htc;
269
+ * std::integral_constant<bool, __has_trivial_copy(MyType)> htc;
270
270
* ```
271
271
*/
272
272
class BuiltInOperationHasTrivialCopy extends BuiltInOperation , @hastrivialcopy {
@@ -468,7 +468,7 @@ class BuiltInOperationIsUnion extends BuiltInOperation, @isunionexpr {
468
468
* ```
469
469
* template<typename _Tp1, typename _Tp2>
470
470
* struct types_compatible
471
- * : public integral_constant<bool, __builtin_types_compatible_p(_Tp1, _Tp2) >
471
+ * : public integral_constant<bool, __builtin_types_compatible_p(_Tp1, _Tp2)>
472
472
* { };
473
473
* ```
474
474
*/
@@ -547,7 +547,7 @@ class BuiltInOperationBuiltInAddressOf extends UnaryOperation, BuiltInOperation,
547
547
* ```
548
548
* template<typename T, typename... Args>
549
549
* struct is_trivially_constructible
550
- * : public integral_constant<bool, __is_trivially_constructible(T, Args...) >
550
+ * : public integral_constant<bool, __is_trivially_constructible(T, Args...)>
551
551
* { };
552
552
* ```
553
553
*/
@@ -701,7 +701,7 @@ class BuiltInOperationIsTriviallyCopyable extends BuiltInOperation, @istrivially
701
701
*
702
702
* ```
703
703
* template <typename _Tp>
704
- * std::integral_constant< bool, __is_literal_type(_Tp)> ilt;
704
+ * std::integral_constant<bool, __is_literal_type(_Tp)> ilt;
705
705
* ```
706
706
*/
707
707
class BuiltInOperationIsLiteralType extends BuiltInOperation , @isliteraltypeexpr {
@@ -718,7 +718,7 @@ class BuiltInOperationIsLiteralType extends BuiltInOperation, @isliteraltypeexpr
718
718
* compiler, with semantics of the `memcpy` operation.
719
719
* ```
720
720
* template <typename _Tp>
721
- * std::integral_constant< bool, __has_trivial_move_constructor(_Tp)> htmc;
721
+ * std::integral_constant<bool, __has_trivial_move_constructor(_Tp)> htmc;
722
722
* ```
723
723
*/
724
724
class BuiltInOperationHasTrivialMoveConstructor extends BuiltInOperation ,
@@ -736,7 +736,7 @@ class BuiltInOperationHasTrivialMoveConstructor extends BuiltInOperation,
736
736
* ```
737
737
* template<typename T>
738
738
* struct has_trivial_move_assign
739
- * : public integral_constant<bool, __has_trivial_move_assign(T) >
739
+ * : public integral_constant<bool, __has_trivial_move_assign(T)>
740
740
* { };
741
741
* ```
742
742
*/
@@ -771,7 +771,7 @@ class BuiltInOperationHasNothrowMoveAssign extends BuiltInOperation, @hasnothrow
771
771
* ```
772
772
* template<typename T, typename... Args>
773
773
* struct is_constructible
774
- * : public integral_constant<bool, __is_constructible(T, Args...) >
774
+ * : public integral_constant<bool, __is_constructible(T, Args...)>
775
775
* { };
776
776
* ```
777
777
*/
@@ -935,7 +935,7 @@ class BuiltInOperationIsValueClass extends BuiltInOperation, @isvalueclassexpr {
935
935
* ```
936
936
* template<typename T>
937
937
* struct is_final
938
- * : public integral_constant<bool, __is_final(T) >
938
+ * : public integral_constant<bool, __is_final(T)>
939
939
* { };
940
940
* ```
941
941
*/
@@ -991,3 +991,17 @@ class BuiltInComplexOperation extends BuiltInOperation, @builtincomplex {
991
991
/** Gets the operand corresponding to the imaginary part of the complex number. */
992
992
Expr getImaginaryOperand ( ) { this .hasChild ( result , 1 ) }
993
993
}
994
+
995
+ /**
996
+ * A C++ `__is_aggregate` built-in operation (used by some implementations of the
997
+ * `<type_traits>` header).
998
+ *
999
+ * Returns `true` if the type has is an aggregate type.
1000
+ * ```
1001
+ * std::integral_constant<bool, __is_aggregate(_Tp)> ia;
1002
+ * ``` */
1003
+ class BuiltInOperationIsAggregate extends BuiltInOperation , @isaggregate {
1004
+ override string toString ( ) { result = "__is_aggregate" }
1005
+
1006
+ override string getAPrimaryQlClass ( ) { result = "BuiltInOperationIsAggregate" }
1007
+ }
0 commit comments