У меня есть такой функтор,
class PrintParentheses
{
public:
PrintParentheses(unsigned pairsCount)
{}
void operator ()() {}
};
Внутри main()
я использую его так:
#include <iostream>
int main()
{
unsigned pairsCount = 0;
// Error: ‘PrintParentheses pairsCount()’ redeclared as different kind of symbol
PrintParentheses(pairsCount)();
PrintParentheses(5)(); // But this works
}
Позиции ошибок отмечены внутри самого кода. Я тестировал и GCC-4.6
, и clang-3.1
. Оба дают одну и ту же ошибку.
PrintParentheses(pairsCount)();
объявляетpairsCount
как функцию, возвращающуюPrintParentheses
. Я знаю, что об этом спрашивали несколько раз, но у меня возникли проблемы с поиском. - person   schedule 08.10.2012T1 x(T2())
, а неT1(x)()
, хотя основная проблема та же. - person   schedule 08.10.2012Class obj();
при попытке явного вызова конструктора по умолчанию. - person chris   schedule 08.10.2012