@@ -612,13 +612,10 @@ class BuiltInOperationIsTriviallyDestructible extends BuiltInOperation, @istrivi
612
612
* The `__is_trivially_assignable` built-in operation (used by some
613
613
* implementations of the `<type_traits>` header).
614
614
*
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) .
617
617
* ```
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);
622
619
* ```
623
620
*/
624
621
class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation , @istriviallyassignableexpr {
@@ -631,10 +628,10 @@ class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation, @istrivial
631
628
* The `__is_nothrow_assignable` built-in operation (used by some
632
629
* implementations of the `<type_traits>` header).
633
630
*
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`
635
632
* assignment operator (i.e, with an empty exception specification).
636
633
* ```
637
- * bool v = __is_nothrow_assignable(MyType );
634
+ * bool v = __is_nothrow_assignable(MyType1, MyType2 );
638
635
* ```
639
636
*/
640
637
class BuiltInOperationIsNothrowAssignable extends BuiltInOperation , @isnothrowassignableexpr {
@@ -643,6 +640,22 @@ class BuiltInOperationIsNothrowAssignable extends BuiltInOperation, @isnothrowas
643
640
override string getAPrimaryQlClass ( ) { result = "BuiltInOperationIsNothrowAssignable" }
644
641
}
645
642
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
+
646
659
/**
647
660
* The `__is_standard_layout` built-in operation (used by some implementations
648
661
* of the `<type_traits>` header).
0 commit comments