@@ -257,8 +257,15 @@ namespace sqlite_orm {
257257#if __cpp_lib_void_t >= 201411L
258258 using std::void_t;
259259#else
260+ /*
261+ * Implementation note: Conservative implementation due to CWG issue 1558 (Unused arguments in alias template specializations).
262+ */
260263 template<class...>
261- using void_t = void;
264+ struct always_void {
265+ using type = void;
266+ };
267+ template<class... T>
268+ using void_t = typename always_void<T...>::type;
262269#endif
263270
264271#if __cpp_lib_bool_constant >= 201505L
@@ -1593,6 +1600,7 @@ namespace sqlite_orm {
15931600 /*
15941601 * Implementation note: the technique of indirect expression testing is because
15951602 * of older compilers having problems with the detection of dependent templates [SQLITE_ORM_BROKEN_ALIAS_TEMPLATE_DEPENDENT_EXPR_SFINAE].
1603+ * It must also be a type that differs from those for `is_printable_v`, `is_bindable_v`, `is_preparable_v`.
15961604 */
15971605 template<class FieldOf>
15981606 struct indirectly_test_field_of;
@@ -2957,6 +2965,7 @@ namespace sqlite_orm {
29572965 /*
29582966 * Implementation note: the technique of indirect expression testing is because
29592967 * of older compilers having problems with the detection of dependent templates [SQLITE_ORM_BROKEN_ALIAS_TEMPLATE_DEPENDENT_EXPR_SFINAE].
2968+ * It must also be a type that differs from those for `is_field_of_v`, `is_preparable_v`, `is_bindable_v`.
29602969 */
29612970 template<class Printer>
29622971 struct indirectly_test_printable;
@@ -8824,6 +8833,7 @@ namespace sqlite_orm {
88248833 /*
88258834 * Implementation note: the technique of indirect expression testing is because
88268835 * of older compilers having problems with the detection of dependent templates [SQLITE_ORM_BROKEN_ALIAS_TEMPLATE_DEPENDENT_EXPR_SFINAE].
8836+ * It must also be a type that differs from those for `is_field_of_v`, `is_printable_v`, `is_preparable_v`.
88278837 */
88288838 template<class Binder>
88298839 struct indirectly_test_bindable;
@@ -19097,6 +19107,7 @@ namespace sqlite_orm {
1909719107 /*
1909819108 * Implementation note: the technique of indirect expression testing is because
1909919109 * of older compilers having problems with the detection of dependent templates [SQLITE_ORM_BROKEN_ALIAS_TEMPLATE_DEPENDENT_EXPR_SFINAE].
19110+ * It must also be a type that differs from those for `is_field_of_v`, `is_printable_v`, `is_bindable_v`.
1910019111 */
1910119112 template<class Binder>
1910219113 struct indirectly_test_preparable;
0 commit comments