When I use boost::callable_traits::is_invocable with fu2::unique_function on msvc v19.33 or older, I got C2248 (cannot access private member) error.
When I replace boost::callable_traits::is_invocable with std::is_invocable (since C++17), then the error is disappeared.
#include <function2/function2.hpp>
#include <boost/callable_traits.hpp>
#include <type_traits>
using unique_func_t = fu2::unique_function<void()>;
int main() {
// no error with std::is_invocable
static_assert(std::is_invocable<unique_func_t>::value);
// error C2248 with boost::callable_traits::is_invocable
static_assert(boost::callable_traits::is_invocable<unique_func_t>::value);
}
Godbolt link: https://godbolt.org/z/vM19nhfv7
At first, I report the issue to function2.
See Naios/function2#54
The issue happens the combination of boost::callable_traits::is_invocable, fu2::unique_function, and msvc v19.33 or older.
It is complecated for me but fortunately, we can reproduce the issue on godbolt.
So I report the issue here too.
When I use
boost::callable_traits::is_invocablewithfu2::unique_functionon msvc v19.33 or older, I got C2248 (cannot access private member) error.When I replace boost::callable_traits::is_invocable with std::is_invocable (since C++17), then the error is disappeared.
Godbolt link: https://godbolt.org/z/vM19nhfv7
At first, I report the issue to function2.
See Naios/function2#54
The issue happens the combination of
boost::callable_traits::is_invocable,fu2::unique_function, and msvc v19.33 or older.It is complecated for me but fortunately, we can reproduce the issue on godbolt.
So I report the issue here too.