Ist es möglich, eine using
Deklaration für den Literal Operator, operator ""
zu haben?`using` Deklaration für einen benutzerdefinierten literalen Operator
ZB
#include <chrono>
namespace MyNamespace
{
constexpr std::chrono::hours operator "" _hr(unsigned long long n){
return std::chrono::hours{n};
}
// ... other stuff in the namespace ...
}
using MyNamespace::operator""; // DOES NOT COMPILE!
int main()
{
auto foo = 37_hr;
}
Meine Arbeit-around hat diese Operatoren in ihrer eigenen verschachtelten Namespace literals
genannt zu setzen, die using namespace MyNamespace::literals;
erlaubt, aber dies scheint etwas unelegant, und ich sehe nicht, warum die using
Anweisung kann nicht für operator
Funktionen auf die gleiche Weise wie für alle anderen Funktionen oder Typen innerhalb eines Namespace verwendet werden.
'mit MyNamespace :: operator "" _ h;' –
@PiotrSkotnicki Das, mein Freund, eine Antwort ist. (Eine richtige Antwort, sogar!) –