Search code examples
c++qtboost

Error using Qt during build: C2872: 'byte': ambiguous symbol


I have Qt Creator with compiler Desktop x86-windows-msvc2019-pe-64bit, Qt Creator 4.11.1 ("based on Qt 5.14.1 MSVC2017, 32 bit), built Feb 5 2020, Boost library 1.72 and also Microsoft Visual Studio Express 2019.

During the building of my program in Qt I get this error:

C2872: 'byte': ambiguous symbol

Actually the solution is written on this page: https://studiofreya.com/2018/01/06/visual-studio-2017-with-cpp17-and-boost/#stdbyte-ambiguous-symbol-and-rpcndr.h The problem is I am using Qt (not VS) and have no idea how turn this compiler behaviour off.

Would you know how to avoid this error?

The beginning of my project file looks like this:

QT       += core gui
QT       += charts

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

INCLUDEPATH += "c:/Qt/boost_1_72_0/"

Solution

  • As Adrian advised - Why is “using namespace std;” considered bad practice? - I deleted

    using namespace std;
    

    from header files of my classes and used std:: prefix where needed and voila, the error is away.