template
auto LoggerBase::LogMessage(T&&... args) -> void
{
if (Verbose)
{
constexpr int size{ 256 };
char msgBuffer[size];
auto size_copied = sprintf_s(msgBuffer, size, std::forward(args)...);
std::string msg(msgBuffer);
LogMessageQuery.Add(msg);
}
}
template
auto LoggerBase::LogMessageW(T&&... args) -> void
{
if (Verbose)
{
constexpr int size{ 256 };
wchar_t msgBuffer[size];
auto size_copied = swprintf_s(msgBuffer, size, std::forward(args)...);
std::wstring wmsg(msgBuffer);
LogMessageQuery.Add(wmsg);
}
}
< /code>
In: < /p>
template
auto LoggerBase::LogMessageAny(T&&... args) -> void
{
if (Verbose)
{
using firstType = typename std::tuple_element::type;
constexpr int size{ 256 };
if (typeid(firstType) == typeid(const wchar_t*))
{
wchar_t msgBuffer[size];
auto size_copied = swprintf_s(msgBuffer, size, std::forward(args)...);
std::wstring wmsg(msgBuffer);
LogMessageQuery.Add(wmsg);
}
else if (typeid(firstType) == typeid(const char*))
{
char msgBuffer[size];
auto size_copied = sprintf_s(msgBuffer, size, std::forward(args)...);
std::string msg(msgBuffer);
LogMessageQuery.Add(msg);
}
}
}
< /code>
Diese Tests werden jedoch nicht kompiliert: < /p>
typedef void(__stdcall* MessageChangedCallback)(const wchar_t* string);
static MessageChangedCallback log = [](const wchar_t* z)
{
Logger::WriteMessage(z);
};
TEST_CLASS(LoggerBaseTests)
{
public:
TEST_METHOD(LogMessageAny_stringTest)
{
LoggerBase sut(log);
sut.LogMessageAny("This is a good std::string TEST %i!", 123);
}
TEST_METHOD(LogMessageAny_wstringTest)
{
LoggerBase sut(log);
sut.LogMessageAny(L"This is a good std::wstring TEST %i!", 456);
}
};
< /code>
Schweregradcode Beschreibung Projektdatei -Unterdrückungszustandsdetails
Fehler C2664 'int SWPRINTF_S (WCHAR_T *const, const size_t, const wchar_t
*const, ...) ': Argument 3 von' const char [36] 'in' const wchar_t *const
'Utiltests kann nicht konvertiert werden C: \ Benutzer \ Soleil \ Source \ repos \ sublimetriptych \ util \ loggerbase *const, const size_t, const char *const
, ...) ': Argument 3 kann nicht konstant warch wary_t [url=viewtopic.php?t=12659]konvertieren[/url] [37] 'to' const
char *const
'Utiltests C: \ Benutzer \ Soleil \ Source \ Repos \ Sublimetriptycha \ util \ loggerbase.h 85 < /p>
< /blockquote >
Die zwei Funktionen in der Inital funktionieren gut. Geben Sie den Schalter richtig ein? dh am Ruf von Sprintf (): Etwas in der Denkweise von swprintf_s (msgbuffer, Größe, (const char*) args [0], std :: Forward (args [1 ..]) ... )
Wie kann ein Weiterleitungsparameterpack spezialisiert?
tun Arbeiten Sie mit zwei Parametern, aber ich muss ein generisches Parameterpaket für Args oder Index> 1 führen. Daher handelt es sich nicht um eine Lösung. Soll ich mich bereits in den Parametern der Funktion logMessage () spezialisieren und sie stattdessen überladen?
Ich versuche, zwei Funktionen in eine allgemeinere Funktion zusammenzuführen: < /p> [code]template auto LoggerBase::LogMessage(T&&... args) -> void { if (Verbose) { constexpr int size{ 256 }; char msgBuffer[size]; auto size_copied = sprintf_s(msgBuffer, size, std::forward(args)...); std::string msg(msgBuffer); LogMessageQuery.Add(msg); } }
template auto LoggerBase::LogMessageW(T&&... args) -> void { if (Verbose) { constexpr int size{ 256 }; wchar_t msgBuffer[size]; auto size_copied = swprintf_s(msgBuffer, size, std::forward(args)...); std::wstring wmsg(msgBuffer); LogMessageQuery.Add(wmsg); } } < /code> In: < /p> template auto LoggerBase::LogMessageAny(T&&... args) -> void { if (Verbose) { using firstType = typename std::tuple_element::type; constexpr int size{ 256 }; if (typeid(firstType) == typeid(const wchar_t*)) { wchar_t msgBuffer[size]; auto size_copied = swprintf_s(msgBuffer, size, std::forward(args)...); std::wstring wmsg(msgBuffer); LogMessageQuery.Add(wmsg); } else if (typeid(firstType) == typeid(const char*)) { char msgBuffer[size]; auto size_copied = sprintf_s(msgBuffer, size, std::forward(args)...); std::string msg(msgBuffer); LogMessageQuery.Add(msg); } } } < /code> Diese Tests werden jedoch nicht kompiliert: < /p> typedef void(__stdcall* MessageChangedCallback)(const wchar_t* string); static MessageChangedCallback log = [](const wchar_t* z) { Logger::WriteMessage(z); };
TEST_CLASS(LoggerBaseTests) { public: TEST_METHOD(LogMessageAny_stringTest) { LoggerBase sut(log); sut.LogMessageAny("This is a good std::string TEST %i!", 123); }
TEST_METHOD(LogMessageAny_wstringTest) { LoggerBase sut(log); sut.LogMessageAny(L"This is a good std::wstring TEST %i!", 456); }
}; < /code>
Schweregradcode Beschreibung Projektdatei -Unterdrückungszustandsdetails Fehler C2664 'int SWPRINTF_S (WCHAR_T *const, const size_t, const wchar_t *const, ...) ': Argument 3 von' const char [36] 'in' const wchar_t *const 'Utiltests kann nicht konvertiert werden C: \ Benutzer \ Soleil \ Source \ repos \ sublimetriptych \ util \ loggerbase *const, const size_t, const char *const , ...) ': Argument 3 kann nicht konstant warch wary_t [url=viewtopic.php?t=12659]konvertieren[/url] [37] 'to' const char *const 'Utiltests C: \ Benutzer \ Soleil \ Source \ Repos \ Sublimetriptycha \ util \ loggerbase.h 85 < /p> < /blockquote > Die zwei Funktionen in der Inital funktionieren gut. Geben Sie den Schalter richtig ein? dh am Ruf von Sprintf (): Etwas in der Denkweise von swprintf_s (msgbuffer, Größe, (const char*) args [0], std :: Forward (args [1 ..]) ... ) [/code]
Wie kann ein Weiterleitungsparameterpack spezialisiert? tun Arbeiten Sie mit zwei Parametern, aber ich muss ein generisches Parameterpaket für Args oder Index> 1 führen. Daher handelt es sich nicht um eine Lösung. Soll ich mich bereits in den Parametern der Funktion logMessage () spezialisieren und sie stattdessen überladen?
Ich teste den Costas -Schleifenblock in Gnuradio (Version 3.8.x) mit einem einfachen Sinuswellensignal. Es wird erwartet, dass die Costas -Schleife die Phase auf einen bekannten Wert sperrt...
Ich verwende Visual Studio 2026 Insider mit dem neuesten MSVC -Compiler und C ++ -
Der folgende Code kompiliert nicht:
//Test.ixx
export module Test;
export import std;
Ich arbeite an einer semantischen Segmentierungsaufgabe, bei der ich versuche, den Encoder aus einem vorgebildeten VA-VAE-Modell als Rückgrat für eine UPERNET-Architektur zu verwenden. Mein Ziel ist...
Nicht-öffentlich (alka haben einen einzelnen führenden Unterstrich)
Seien Sie ein Parameter im __init __ Signature
class Foo:
def __init__(self, bar:...