當我使用下面的代碼執行一些操作1秒鐘時,我從Visual Studio中收到C4101警告:警告C4101:'highResClock':未引用的局部變量。我不明白爲什麼我在聲明它後使用highResClock兩次時會收到此警告。C++ 11時間未引用的本地變量
chrono::high_resolution_clock highResClock;
chrono::duration<int, ratio<1, 1> > dur(1);
chrono::time_point<chrono::high_resolution_clock> end = highResClock.now() + dur;
while (highResClock.now() < end)
{
// do something repeatedly for 1 second
}
編輯:它看起來像從Visual Studio中的警告,是因爲性病::時辰:: high_resolution_clock ::現在()是一個靜態函數。儘管這是我選擇使用的特定方法,但現在()不需要highResClock變量。 Visual Studio似乎將此解釋爲不使用變量。當我用下面我不再得到任何警告:
chrono::duration<int, ratio<1, 1> > dur(1);
chrono::time_point<chrono::high_resolution_clock> end = chrono::high_resolution_clock::now() + dur;
while (chrono::high_resolution_clock::now() < end)
{
// do nothing
}
備註:'std :: chrono :: high_resolution_clock :: now'是一個靜態函數,可以在沒有'std :: chrono :: high_resolution_clock'的情況下使用。我不知道爲什麼VS給你C4101,但這可能是源頭。 – Zeta
FWIW,編譯無警告[在GCC/coliru](http://coliru.stacked-crooked.com/a/b543c37fe327fcff)。 –
[''clang'與'-Weverything'一樣](http://coliru.stacked-crooked.com/a/198f8d25bf0093a) – Zeta