C++ 为函数创建别名
我想为C++ 为函数创建别名,c++,visual-c++,C++,Visual C++,我想为CPPUNIT\u ASSERT\u EQUAL\u消息(字符串消息,T预期,T实际)创建一个别名。我试过: template<class T> void (&_assert)(string, T, T) = &CPPUNIT_ASSERT_EQUAL_MESSAGE; 正确的语法是什么 Simple put,没有正确的语法,因为正如phoeagon所指出的,这是一个宏,没有函数: template<class T> inline void _a
CPPUNIT\u ASSERT\u EQUAL\u消息(字符串消息,T预期,T实际)
创建一个别名。我试过:
template<class T> void (&_assert)(string, T, T) = &CPPUNIT_ASSERT_EQUAL_MESSAGE;
正确的语法是什么 Simple put,没有正确的语法,因为正如phoeagon所指出的,这是一个宏,没有函数:
template<class T>
inline void _assert(const string& message, T expected, T actual)
{ CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual); }
简单地说,没有正确的语法,因为正如phoeagon所指出的,这是一个宏,没有函数:
template<class T>
inline void _assert(const string& message, T expected, T actual)
{ CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual); }
只需创建一个转发功能:
template<class T>
inline void _assert(const string& message, T expected, T actual)
{ CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual); }
模板
内联void\u断言(常量字符串和消息,预期为T,实际为T)
{CPPUNIT_ASSERT_EQUAL_MESSAGE(MESSAGE,预期,实际);}
只需创建一个转发功能:
template<class T>
inline void _assert(const string& message, T expected, T actual)
{ CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual); }
模板
内联void\u断言(常量字符串和消息,预期为T,实际为T)
{CPPUNIT_ASSERT_EQUAL_MESSAGE(MESSAGE,预期,实际);}
CPPUNIT\u ASSERT\u EQUAL\u MESSAGE
是一个宏而不是一个函数,因此您可以使用内联
函数的实际定义“包装”它(如前面的答案所建议的),或者简单地定义一个别名宏:
#define _assert CPPUNIT_ASSERT_EQUAL_MESSAGE
在这两种方法中,我会选择包装函数方法,这样就可以在名称空间中声明它,并避免命名冲突。
CPPUNIT\u ASSERT\u EQUAL\u MESSAGE
是一个宏,而不是一个函数,因此您可以使用内联
函数的实际定义“包装”它(正如前面的回答所建议的)或者简单地定义别名宏:
#define _assert CPPUNIT_ASSERT_EQUAL_MESSAGE
在这两种方法中,我会选择包装函数方法,这样就可以在名称空间中声明它,并避免命名冲突。您确定
CPPUNIT\u ASSERT\u EQUAL\u MESSAGE
是函数还是宏?我不确定实际上。。。我怎么知道?你确定CPPUNIT\u ASSERT\u EQUAL\u MESSAGE
是函数而不是宏吗?我不确定实际上。。。我怎么知道?