This page is a snapshot from the LWG issues list, see theLibrary Active Issues List for more information and the meaning ofResolved status.
is_callable is not a good nameSection: 21.3.3[meta.type.synop], 21.3.8[meta.rel]Status:ResolvedSubmitter: United StatesOpened: 2017-02-03Last modified: 2020-09-06
Priority:Not Prioritized
View otheractive issues in [meta.type.synop].
View all otherissues in [meta.type.synop].
View all issues withResolved status.
Discussion:
Addresses US 86is_callable is not a good name because it impliesF(A...) instead ofINVOKE(F, A...)
Proposed change: Renameis_callable tois_invocable and renameis_nothrow_callable tois_nothrow_invocable.
[2017-02-22, Daniel comments and provides concrete wording]
I'm strongly in favour for this change to possibly allow for a future "pure"is_callable trait that solely describes function call-like expressions.
Previous resolution [SUPERSEDED]:
This wording is relative toN4640.
Modify 21.3.3[meta.type.synop], header
<type_traits>synopsis, as indicated:[…]// 20.15.6, type relations[…]template <class, class R = void> struct is_invocablecallable; // not definedtemplate <class Fn, class... ArgTypes, class R>struct is_invocablecallable<Fn(ArgTypes...), R>;template <class, class R = void> struct is_nothrow_invocablecallable; // not definedtemplate <class Fn, class... ArgTypes, class R>struct is_nothrow_invocablecallable<Fn(ArgTypes...), R>;[…]// 20.15.6, type relations[…]template <class T, class R = void> constexpr bool is_invocablecallable_v= is_invocablecallable<T, R>::value;template <class T, class R = void> constexpr bool is_nothrow_invocablecallable_v= is_nothrow_invocablecallable<T, R>::value;[…]Modify 21.3.8[meta.rel], Table 44 — "Type relationship predicates", as indicated:
Table 44 — Type relationship predicates […]template <class Fn, class...
ArgTypes, class R>
struct is_invocablecallable<
Fn(ArgTypes...), R>;[…] […] template <class Fn, class...
ArgTypes, class R>
struct is_nothrow_invocablecallable<
Fn(ArgTypes...), R>;is_invocableiscallable_v<
Fn(ArgTypes...), R>true[…][…]
[2017-02-24, Daniel comments]
I suggest to apply the paper d0604r0 instead, available on the Kona LWG wiki.
[2017-03-12, post-Kona]
Resolved by p0604r0.
Proposed resolution: