Is it possible to have a using
declaration for the literals operator, operator ""
?
E.g.,
#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;
}
My work-around has been to put these operators in their own nested namespace called literals
, which allows using namespace MyNamespace::literals;
, but this seems somewhat inelegant, and I don't see why the using
directive can't be used for operator
functions in the same way as it can for any other functions or types within a namespace.