再次以“在C++中使用C”的方式提出问题。在我用C++实现APR的实验中,我遇到了一个新问题。 C++的头文件:错误:无效从'void *'转换为'test :: apr_size_t * {aka long unsigned int *}'[-fpermissive]
#ifndef TEST_STRINGCOMMONS_H_
#define TEST_STRINGCOMMONS_H_
namespace test {
class StringCommons {
public:
static char* substr_offset_length(apr_pool_t *pool, const char* input,
apr_size_t offset, apr_size_t length);
};
} /* namespace test */
#endif /* TEST_STRINGCOMMONS_H_ */
和C++实现的是:
namespace test {
...
char* substr_offset_length(apr_pool_t *pool, const char* input, apr_size_t offset, apr_size_t length)
{
apr_size_t *input_length = apr_pcalloc(pool, sizeof(apr_size_t));
...
}
} // namespace test
通过编译该类我得到的错误:
error: invalid conversion from ‘void*’ to ‘test::apr_size_t* {aka long unsigned int*}’ [-fpermissive]
我想知道什么是错的与此代码。请有人帮助我。
最好的问候, SK
代替“将C编译为C++”,将C编译为C,然后将C++编译为C++,并让链接器执行连接 –