Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Prototypovaná funkce není volána (byla zamýšlena definice proměnné?)
Poznámky
Kompilátor zjistil prototyp nepoužívané funkce. Pokud byl prototyp zamýšlen jako deklarace proměnné, odeberte otevřené/blízké závorky.
Examples
Následující příklad generuje C4930:
// C4930.cpp
// compile with: /W1
class Lock {
public:
int i;
};
void f() {
Lock theLock(); // C4930
// try the following line instead
// Lock theLock;
}
int main() {
}
C4930 může také nastat, když kompilátor nedokáže rozlišit mezi deklarací prototypu funkce a voláním funkce.
Následující příklad generuje C4930:
// C4930b.cpp
// compile with: /EHsc /W1
class BooleanException
{
bool _result;
public:
BooleanException(bool result)
: _result(result)
{
}
bool GetResult() const
{
return _result;
}
};
template<class T = BooleanException>
class IfFailedThrow
{
public:
IfFailedThrow(bool result)
{
if (!result)
{
throw T(result);
}
}
};
class MyClass
{
public:
bool MyFunc()
{
try
{
IfFailedThrow<>(MyMethod()); // C4930
// try one of the following lines instead
// IfFailedThrow<> ift(MyMethod());
// IfFailedThrow<>(this->MyMethod());
// IfFailedThrow<>((*this).MyMethod());
return true;
}
catch (BooleanException e)
{
return e.GetResult();
}
}
private:
bool MyMethod()
{
return true;
}
};
int main()
{
MyClass myClass;
myClass.MyFunc();
}
Ve výše uvedeném příkladu se výsledek metody, která přebírá nulové argumenty, předává jako argument konstruktoru nepojmenované místní proměnné třídy. Volání může být nejednoznačné pojmenováním místní proměnné nebo předponou volání metody s instancí objektu spolu s příslušným operátorem ukazatele na člena.