@@ -612,13 +612,10 @@ class BuiltInOperationIsTriviallyDestructible extends BuiltInOperation, @istrivi
612612 * The `__is_trivially_assignable` built-in operation (used by some
613613 * implementations of the `<type_traits>` header).
614614 *
615- * Returns `true` if the assignment operator `C::operator =(const C& c )` is
616- * trivial.
615+ * Returns `true` if the assignment operator `C::operator =(const D& d )` is
616+ * trivial (i.e., it will not call any operation that is non-trivial) .
617617 * ```
618- * template<typename T>
619- * struct is_trivially_assignable
620- * : public integral_constant<bool, __is_trivially_assignable(T) >
621- * { };
618+ * bool v = __is_trivially_assignable(MyType1, MyType2);
622619 * ```
623620 */
624621class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation , @istriviallyassignableexpr {
@@ -631,10 +628,10 @@ class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation, @istrivial
631628 * The `__is_nothrow_assignable` built-in operation (used by some
632629 * implementations of the `<type_traits>` header).
633630 *
634- * Returns true if there exists a `C::operator =(const C& c ) nothrow`
631+ * Returns true if there exists a `C::operator =(const D& d ) nothrow`
635632 * assignment operator (i.e, with an empty exception specification).
636633 * ```
637- * bool v = __is_nothrow_assignable(MyType );
634+ * bool v = __is_nothrow_assignable(MyType1, MyType2 );
638635 * ```
639636 */
640637class BuiltInOperationIsNothrowAssignable extends BuiltInOperation , @isnothrowassignableexpr {
@@ -643,6 +640,22 @@ class BuiltInOperationIsNothrowAssignable extends BuiltInOperation, @isnothrowas
643640 override string getAPrimaryQlClass ( ) { result = "BuiltInOperationIsNothrowAssignable" }
644641}
645642
643+ /**
644+ * The `__is_assignable` built-in operation (used by some implementations
645+ * of the `<type_traits>` header).
646+ *
647+ * Returns true if there exists a `C::operator =(const D& d)` assignment
648+ * operator.
649+ * ```
650+ * bool v = __is_assignable(MyType1, MyType2);
651+ * ```
652+ */
653+ class BuiltInOperationIsAssignable extends BuiltInOperation , @isassignable {
654+ override string toString ( ) { result = "__is_assignable" }
655+
656+ override string getAPrimaryQlClass ( ) { result = "BuiltInOperationIsAssignable" }
657+ }
658+
646659/**
647660 * The `__is_standard_layout` built-in operation (used by some implementations
648661 * of the `<type_traits>` header).
0 commit comments