Ошибка Boost_1_72_0: макрос «тест» передал 2 аргумента, но принимает только 1 - PullRequest
0 голосов
/ 30 апреля 2020

g cc (G CC) 4.8.5 20150623 (Red Hat 4.8.5-11) centos-release-7-3.1611.el7.centos.x86_64 Повышение: 1.72.0

Я получаю следующую ошибку при компиляции моего кода на C ++:

In file included from /home/hadoop/work/external-lib/boost_1_72_0/boost/mpl/apply_wrap.hpp:23:0,
                 from /home/hadoop/work/external-lib/boost_1_72_0/boost/mpl/apply.hpp:23,
                 from /home/hadoop/work/external-lib/boost_1_72_0/boost/iterator/iterator_facade.hpp:36,
                 from /home/hadoop/work/external-lib/boost_1_72_0/boost/range/iterator_range_core.hpp:27,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/algorithm/string/replace.hpp:16,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time/date_facet.hpp:17,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time/gregorian/gregorian_io.hpp:16,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time/gregorian/gregorian.hpp:31,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time/posix_time/time_formatters.hpp:12,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time/posix_time/posix_time.hpp:24,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time/local_time/local_time.hpp:11,
from /home/hadoop/work/external-lib/boost_1_72_0/boost/date_time.hpp:15,
from /home/hadoop/work/db/connection.cpp:6:
/home/hadoop/work/external-lib/boost_1_72_0/boost/mpl/aux_/has_apply.hpp:22:58: error: macro "test" passed 2 arguments, but takes just 1
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false)

Файл db / connection. cpp:

#include "connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <boost/date_time.hpp> // Error at this line

db::Connection::Connection() {
        m_driver = sql::mysql::get_mysql_driver_instance();
        m_driver->threadInit();
        m_con = m_driver->connect("tcp://<host>:<port>", "<user>", "<pwd>");
        m_con->setSchema("test");
        m_stmt = m_con->createStatement();
}

Я не делаю никакого повышения :: date_time вызов. Просто включил заголовочный файл (пока что).

Стоит отметить, что код MySQL также обращается к библиотеке буста (внутренне), и я не получаю никакой ошибки, когда закомментирую заголовочный файл boost / date_time.

...