gtest / Ошибка тестирования Google C ++ в Visual Studio 2017 - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь создать простой тест с использованием gtest на последней версии Visual Studio 2017. Код выглядит следующим образом:

#include "pch.h"
#include <gtest/gtest.h>

struct BankAccount
{
    int balance = 0;

    BankAccount()
    {
    }

    explicit BankAccount(const int balance)
        : balance{ balance }
    {
    }
};

TEST(AccountTest, BankAccountStartsEmpty)
{
    BankAccount account;
    EXPECT_EQ(0, account.balance);
}


int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

И ошибка сборки:

 Error  C4996   'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. 
You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.

Я уже пробовал:

#define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING

Но это только ухудшает ситуацию.Я не знаю, как исправить эту ошибку.

ОБНОВЛЕНИЕ

Я попытался добавить определение в определения препроцессора и над включениями.Ни один не работает !!

1 Ответ

0 голосов
/ 18 февраля 2019

Попробуйте перейти к:

Вид -> Свойства -> C / C ++ -> Препроцессор

и установить определения препроцессора как _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING

Также другим решением является повторное включение TR1 путем определения _HAS_TR1_NAMESPACE.

Однако отключение ошибки не является хорошей идеей.Ваше предупреждение может появиться из-за неправильной настройки проекта, и вы должны сообщить gtest, что ваша версия компилятора поддерживает более новые версии C ++, установив GTEST_LANG_CXX11 в значение 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...