3
#include <chrono>
namespace X
{
using namespace std;
struct A
{
std::chrono::seconds d = 0s; // ok
};
}
namespace Y
{
struct B
{
std::chrono::seconds d = 0s; // error
};
}
的錯誤信息是:如何使[std :: operator「」s]在命名空間中可見?
錯誤:沒有匹配的字面操作者呼叫「操作符‘’S」類型「無符號長長」或「爲const char *」的 參數並且沒有 匹配文字運算符模板 std :: chrono :: seconds d = 0s;
我的問題是:
我不想在namespace Y
use namespace std;
;那麼,我應該如何在namespace Y
中顯示std::operator""s
?
我認爲你需要'使用命名空間...;'爲第一個,第二個在g ++上發出警告。 – Holt
@Holt我認爲這是一個海灣合作委員會的錯誤。是的,它是一個保留名稱,但我們沒有定義它,只是使用它,所以它應該沒問題。我剛剛添加了一個關於這個的記錄,那個叮噹聲並沒有警告。 – NathanOliver
這意味着用作'使用命名空間std :: chrono_literals;'。 'literals ::'部分是多餘的。 –