f1nal3 / Juniorgram

A C++ messenger for learning purposes in EPAM Brest C++ R&D Lab
14 stars 1 forks source link

Overloaded function breaks build #684

Open slavexx opened 1 year ago

slavexx commented 1 year ago

Description:

Implementation of cryptographic system requires, that the login produced with more information, than it was before. It was:

std::uint64_t LoginRepository::loginUser(const Models::LoginInfo& loginInfo)

became:

std::uint64_t LoginRepository::loginUser(const Models::LoginInfo& loginInfo)

std::uint64_t LoginRepository::loginUser(
    const Models::LoginInfo& loginInfo,
    const Models::ConnectionInfo& connInfo,
    std::shared_ptr<Base::Verifiers::IConnectionVerifier> verifier)

In Server::loginRequestIf if exists two overloads of LoginRepository::loginUser we have next errors:

Current build error:

>------ Build All started: Project: Juniorgram, Configuration: x64-Debug ------
  [1/10] Building CXX object Server\Server.Core\Server.Core.Static\CMakeFiles\Server.Core.Static.dir\Server.cpp.obj
  FAILED: Server/Server.Core/Server.Core.Static/CMakeFiles/Server.Core.Static.dir/Server.cpp.obj 
  C:\PROGRA~2\MICROS~2\2019\PROFES~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DASIO_STANDALONE -DCRYPTOPP_INCLUDE_PREFIX=cryptopp -I..\..\..\DataAccess\DataAccess.Postgre\.. -I..\..\..\DataAccess\Public\.. -I..\..\..\Network\Public\Include -I..\..\..\Utility\Utility.Public\Include -I..\..\..\Base\Logger\Logger.Static -I..\..\..\Base\Logger\Public\Include -I..\..\..\Base\Models\Public\Include -I..\..\..\Base\Crypto\Crypto.Static -I..\..\..\DataAccess\DataAccess.Postgre -I..\..\..\DataAccess\Public\Include -IC:\Users\Admin\.conan\data\argparse\2.9\_\_\package\5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9\include -IC:\Users\Admin\.conan\data\asio\1.18.1\_\_\package\5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9\include -IC:\Users\Admin\.conan\data\yas\7.0.5\_\_\package\5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9\include -ID:\GitHub\vcpkg\installed\x64-windows\include -IC:\Users\Admin\.conan\data\libpq\14.5\_\_\package\d057732059ea44a47760900cb5e4855d2bea8714\include -IC:\Users\Admin\.conan\data\libpqxx\7.7.4\_\_\package\e2380fa28a9025e148ff7e273fd2886a897981e3\include /DWIN32 /D_WINDOWS /GR /EHsc /Zi /Ob0 /Od /RTC1 -MDd /W4 -std:c++17 /showIncludes /FoServer\Server.Core\Server.Core.Static\CMakeFiles\Server.Core.Static.dir\Server.cpp.obj /FdServer\Server.Core\Server.Core.Static\CMakeFiles\Server.Core.Static.dir\Server.Core.Static.pdb /FS -c ..\..\..\Server\Server.Core\Server.Core.Static\Server.cpp
D:\GitHub\Juniorgram\Server\Server.Core\Server.Core.Static\Server.cpp(569): error C2672: 'DataAccess::IRepositoryManager::pushRequest': no matching overloaded function found
D:\GitHub\Juniorgram\Server\Server.Core\Server.Core.Static\Server.cpp(569): error C2783: 'DataAccess::FutureResult<TReturn> DataAccess::IRepositoryManager::pushRequest(TReturn (__cdecl TIRepository::* const &)(TArgs...),TArgs &&...)': could not deduce template argument for 'TIRepository'
  D:\GitHub\Juniorgram\DataAccess\Public\Include\DataAccess/AbstractRepositoryManager.hpp(63): note: see declaration of 'DataAccess::IRepositoryManager::pushRequest'
D:\GitHub\Juniorgram\Server\Server.Core\Server.Core.Static\Server.cpp(576): error C3536: 'futureResult': cannot be used before it is initialized
D:\GitHub\Juniorgram\Server\Server.Core\Server.Core.Static\Server.cpp(577): error C3536: 'userID': cannot be used before it is initialized
  ninja: build stopped: subcommand failed.

Build All failed.
Error   C2672   'DataAccess::IRepositoryManager::pushRequest': no matching overloaded function found

Error   C2783   'DataAccess::FutureResult<TReturn> DataAccess::IRepositoryManager::pushRequest(TReturn (__cdecl TIRepository::* const &)(TArgs...),TArgs &&...)': could not deduce template argument for 'TIRepository'

Error   E0304   no instance of function template "DataAccess::IRepositoryManager::pushRequest" matches the argument list     
            argument types are: (<unknown-type>, const std::remove_cv_t<Models::LoginInfo>, const Models::ConnectionInfo, std::shared_ptr<Base::Verifiers::IConnectionVerifier>)
            object type is: DataAccess::IRepositoryManager

Related tasks:

Implementation of cryptography and connection process #656

Acceptance Criteria:

The build was successful.