読者です 読者をやめる 読者になる 読者になる

stringリテラルと秒リテラルは競合しない

C++

C++14 文字列オブジェクトリテラルと時間リテラル


リテラルに渡される型が文字列と数値で異なっているので、"hello"sと3sは競合しません。

#include <string>
#include <chrono>

std::string operator"" s(const char* str, size_t len)
{
    return std::string(str, len);
}

constexpr std::chrono::seconds operator"" s(unsigned long long n)
{
    return std::chrono::seconds(n);
}

int main()
{
    std::string a = "hello"s; // OK
    std::chrono::seconds b = 3s; // OK
}