I want to add a public typedef to a template for a pointer to a function-taking-one-argument that uses “C” language linkage.
I tried:
extern "C" {
template <typename return_t_, typename arg1_t_>
struct test
{
typedef return_t_ (*C_fun1_t)(arg1_t_);
};
}
And:
template <typename return_t_, typename arg1_t_>
struct test
{
extern "C" {
typedef return_t_ (*C_fun1_t)(arg1_t_);
}
};
And:
template <typename return_t_, typename arg1_t_>
struct test
{
extern "C" typedef return_t_ (*C_fun1_t)(arg1_t_);
};
without success.
Is what I am trying to accomplish possible?
C++03, §7.5p4:
Unfortunately, you simply can’t do this in current C++. This text is unchanged in the latest C++0x draft, but “template typedefs” may be able to accomplish it.