Size: a a a

2021 February 04

MK

Mikhail Kalugin in pro.cxx
то есть option конечно, а не unique_ptr
источник

AS

Artur Solovev in pro.cxx
Danya
template <typename T>
constexpr auto dependent_false = false;
Ух ты, впервые слышу. В свое время костылил это sfinae-friendly взаимоисключающими условиями в static_assert
источник

ПК

Побитый Кирпич... in pro.cxx
Artur Solovev
Ух ты, впервые слышу. В свое время костылил это sfinae-friendly взаимоисключающими условиями в static_assert
Да можно просто:
struct dummy{};
static_assert(std::is_same_v<T, dummy>);

Так и делал, пока не прознал про православный способ
источник

ПК

Побитый Кирпич... in pro.cxx
Хотя он и был очевиден :))
источник
2021 February 05

И

Илья in pro.cxx
Здравствуйте!
Я пытаюсь подключить следующую библиотеку:  https://github.com/OpenEtherCATsociety/SOEM
Если я создаю свой проект CMake внутри этой библиотеки, рядом с её же тестами в папке SOEM/test/win32/, то все компилируется и работает.

Но я хочу, что-бы мой проект лежал рядом с библиотекой, в одной папке решения visual studio.
Содержимое моих cmake файлов:
CMakeLists.txt в папке с решением:

cmake_minimum_required (VERSION 3.8)
project ("consoleMover0")
add_subdirectory ("SOEM-master")
add_subdirectory ("consoleMover0")

CMakeLists.txt  в папке consoleMover0

include_directories( ../SOEM-master/osal )
include_directories( ../SOEM-master/osal/win32)
include_directories( ../SOEM-master/oshw/win32)
include_directories( ../SOEM-master/oshw/win32/wpcap/Include)
add_executable (consoleMover0 "consoleMover0.cpp" "consoleMover0.h")
target_link_libraries(consoleMover0 soem)

В CMakeLists.txt  библиотеки изменил только строку 13. Заменил set(BUILD_TESTS TRUE) на set(BUILD_TESTS FALSE)

В самом consoleMover0.cpp есть только подключение заголовочного файла из библиотеки и hello world
extern "C" {
#include "../SOEM-master/soem/ethercat.h"
}

В таком виде я получаю ошибку:
Ошибка  C1189  #error:  The C++ Standard Library forbids macroizing the keyword "inline".
Enable warning C4005 to find the forbidden define.
#error:  The C++ Standard Library forbids macroizing the keyword "inline".
Enable warning C4005 to find the forbidden define.

Помогите со сборкой, пожалуйста. Этот CMake меня сводит с ума.
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Илья
Здравствуйте!
Я пытаюсь подключить следующую библиотеку:  https://github.com/OpenEtherCATsociety/SOEM
Если я создаю свой проект CMake внутри этой библиотеки, рядом с её же тестами в папке SOEM/test/win32/, то все компилируется и работает.

Но я хочу, что-бы мой проект лежал рядом с библиотекой, в одной папке решения visual studio.
Содержимое моих cmake файлов:
CMakeLists.txt в папке с решением:

cmake_minimum_required (VERSION 3.8)
project ("consoleMover0")
add_subdirectory ("SOEM-master")
add_subdirectory ("consoleMover0")

CMakeLists.txt  в папке consoleMover0

include_directories( ../SOEM-master/osal )
include_directories( ../SOEM-master/osal/win32)
include_directories( ../SOEM-master/oshw/win32)
include_directories( ../SOEM-master/oshw/win32/wpcap/Include)
add_executable (consoleMover0 "consoleMover0.cpp" "consoleMover0.h")
target_link_libraries(consoleMover0 soem)

В CMakeLists.txt  библиотеки изменил только строку 13. Заменил set(BUILD_TESTS TRUE) на set(BUILD_TESTS FALSE)

В самом consoleMover0.cpp есть только подключение заголовочного файла из библиотеки и hello world
extern "C" {
#include "../SOEM-master/soem/ethercat.h"
}

В таком виде я получаю ошибку:
Ошибка  C1189  #error:  The C++ Standard Library forbids macroizing the keyword "inline".
Enable warning C4005 to find the forbidden define.
#error:  The C++ Standard Library forbids macroizing the keyword "inline".
Enable warning C4005 to find the forbidden define.

Помогите со сборкой, пожалуйста. Этот CMake меня сводит с ума.
Ошибка в какой строке какого файла?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Ну и прочитай сообщение и включи 4005 как советуют
источник

И

Илья in pro.cxx
C:\Users\ilya8\source\repos\consoleMover0\out\build\x64-Debug (по умолчанию)\consoleMover0

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xkeycheck.h  268
источник

AF

Aidar Fattakhov in pro.cxx
источник

AF

Aidar Fattakhov in pro.cxx
Он?
источник

AF

Aidar Fattakhov in pro.cxx
Хз зачем так писать
источник

И

Илья in pro.cxx
Видимо он. Что теперь с ним делать? переименовать?
источник

ПК

Побитый Кирпич... in pro.cxx
Aidar Fattakhov
Хз зачем так писать
Это вроде для совместимости с С
источник

AF

Aidar Fattakhov in pro.cxx
Надавать автору по башке лучше
источник

AF

Aidar Fattakhov in pro.cxx
Илья
Видимо он. Что теперь с ним делать? переименовать?
Капсом замени везде
источник

AF

Aidar Fattakhov in pro.cxx
И пулреквест кинь им
источник

ПК

Побитый Кирпич... in pro.cxx
Илья
Видимо он. Что теперь с ним делать? переименовать?
Напиши
#ifndef __cplusplus

#endif

Вокруг
источник

И

Илья in pro.cxx
Побитый Кирпич
Напиши
#ifndef __cplusplus

#endif

Вокруг
Сделал - помогло.
Все равно не собралось, но по крайней мере теперь ошибка новая.
Спасибо.
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Илья
Видимо он. Что теперь с ним делать? переименовать?
Ишью сделать
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Чтобы пофиксили непотребство
источник