• По какой причине происходит дубляж реализации?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc, По идее не должно оно проходить дважды из за директив препроцессора.
  • По какой причине происходит дубляж реализации?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc,
    std::vector<std::string> split(const std::string str, char delimiter = ' ') {
        std::vector<std::string> result;
        result.reserve(str.size());
        int start = 0, end = 0;
        for (const auto& c: str) {
    	if (c != delimiter) {
    	    ++end;
    	    continue;
    	}
    	result.push_back(str.substr(start, end - start));
    	start = ++end;
        }
        if (start <= str.size()) {
    	result.push_back(str.substr(start, end - start));
        }
        return result;
    }


    Функция как функция.
  • По какой причине происходит дубляж реализации?

    Nightmare1
    @Nightmare1 Автор вопроса
    #ifndef WEBDRIVERXX_WEBDRIVER_H
    #define WEBDRIVERXX_WEBDRIVER_H
    
    #include "client.h"
    #include "session.h"
    
    namespace webdriverxx {
    
    // The main class for interactions with a server. Automatically connects to a server,
    // creates and deletes a session and gives access to session's API.
    class WebDriver // copyable
    	: public Client
    	, public Session {
    public:
    	explicit WebDriver(
    		const Capabilities& desired = Capabilities(),
    		const Capabilities& required = Capabilities(),
    		const std::string& url = kDefaultWebDriverUrl
    		)
    		: Client(url)
    		, Session(CreateSession(desired, required))
    	{}
    };
    
    inline
    WebDriver Start(
    	const Capabilities& desired,
    	const Capabilities& required = Capabilities(),
    	const std::string& url = kDefaultWebDriverUrl
    	)
    {
    	return WebDriver(desired, required, url);
    }
    
    inline
    WebDriver Start(const Capabilities& desired, const std::string& url)
    {
    	return Start(desired, Capabilities(), url);
    }
    
    } // namespace webdriverxx
    
    #endif
  • Можно ли реализовать то что я хочу на lua в gmod?

    Nightmare1
    @Nightmare1
    Есть мысль о создании собственный движок с полностью гибкой системой конфигураций.
  • Как расшифровать luaq?

    Nightmare1
    @Nightmare1
    Не видно что вы видите.
  • Как сделать декалий ножа на Glua?

    Nightmare1
    @Nightmare1
    Должно работать. Попробуйте альтернативную функцию https://wiki.facepunch.com/gmod/util.DecalEx
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc, Код выполняется при инициализации класса для копирования
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc, добавил после редактирования.
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc,
    /**
     * @brief Описывает текущий исполняемый файл. Буть то исполняемый файл или библиотека расширения.
     * 
     */
    class ТекущийЗапущенныйОбъект : Машинный::Filesystem::File
    {
      МашинныйОднозначныйКласс( ТекущийЗапущенныйОбъект, {
        std::cout << "\tПервичный путь до исполняемого объекта : " << ПолучитьПервичныйПуть()
                << "\n\tРеальный путь до исполняемого объекта : " << ПолучитьРеальныйПуть()
                << "\n\tДинамическая библиотека? " << ЯвляетсяЛиДинамическойБиблиотекой() << std::endl;
      }, : Машинный::Filesystem::File(ПолучитьРеальныйПуть()) );


    /**
     * объявление рефлексии класса 
     */
    #define МашинныйОпределениеПсевдоСамоанализаКласса(NAME, КОД_ПЕРЕЧНЯ_МЕТОДОВ) \
      public: \
        virtual \
        inline const std::string  названиеКласса() { return НазваниеКласса(); } \
        static \
        inline const std::string  НазваниеКласса() { return #NAME; } \
      private: \
        МашинныйОбъявлениеСтатическогоБлокаКласса(NAME); \
        static Рефлексия::СписокДанныхОФункциях __Список_Методов_Класса; \
      public: \
        static \
        inline Машинный::Types::ullong СамоанализПолучитьКоличествоДоступныхМетодов() { return __Список_Методов_Класса.size(); } \
        static \
        inline void ВывестиИнформациюОМетодах() { \
            for (auto [названиеМетода, укаатель, параметры] : NAME :: __Список_Методов_Класса) \
            { \
                std::cout << названиеМетода << ", " << параметры << std::endl; \
            } \
        } \
      private: \
        СтатическийБлокКодаКлассаИницциализацияВЗаглавии(КОД_ПЕРЕЧНЯ_МЕТОДОВ); \
      public: \
        static bool ИмеетЛиКлассСредстваСамоанализа()  {return true;}


    #define СтатическийБлокКодаКлассаИницциализацияВЗаглавии(КОД_ИНИЦИАЛИЗАЦИИ) \
        private: \
    	    static inline struct _sst__ ## __COUNTER__  { \
                _sst__ ## __COUNTER__ () \
                { \
                    {RunOnceBlockCode(HEADBEGIN, КОД_ИНИЦИАЛИЗАЦИИ) ;} \
                } \
            } static_initial{};


    ../Исходники/Машинный/База/Файлы/ТекущийЗапущенныйОбъект.hpp:16:3: note: in expansion of macro ‘МашинныйОднозначныйКласс’
       16 |   МашинныйОднозначныйКласс( ТекущийЗапущенныйОбъект, {
          |   ^~~~~~~~~~~~~~~~~~~~~~~~
    ../Исходники/Машинный/Определения/Типы Данных/../Уловки Кода.hpp:33:81: error: expected primary-expression before ‘)’ token
       33 |     Объединить(флаг_инициализации__, Определение2Названия( НАЗВАНИЕ1, НАЗВАНИЕ2 ))


    #define МашинныйОднозначныйКласс(НАЗВАНИЕ_КЛАССА, КОД_ЛОКАЛЬНОГО_КОНСТРУКТОРА, КОД_ВЫЗОВА_РОДИТЕЛЬСКОГО_КЛАССА) \
      private: \
        static inline НАЗВАНИЕ_КЛАССА * __однозначный = nullptr; \
      public: \
        static НАЗВАНИЕ_КЛАССА * ПолучитьЕдинственныйОбъектКласса() {return __однозначный;} \
       ~НАЗВАНИЕ_КЛАССА() {} \
        НАЗВАНИЕ_КЛАССА() КОД_ВЫЗОВА_РОДИТЕЛЬСКОГО_КЛАССА {if (__однозначный != nullptr) \
            throw std::exception("Невозможно создать объкт однозначного класса."); \
          else { \
            { КОД_ЛОКАЛЬНОГО_КОНСТРУКТОРА; } } } \
        МашинныйОпределениеПсевдоСамоанализаКласса(НАЗВАНИЕ_КЛАССА, {__однозначный = new НАЗВАНИЕ_КЛАССА ();})
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc,
    #define ОпределениеНазвания(НАЗВАНИЕ) Объединить(_с__Машинный__, НАЗВАНИЕ)
    
    #define Определение2Названия(НАЗВАНИЕ1, НАЗВАНИЕ2) \
        ОпределениеНазвания(Объединить(Объединить(НАЗВАНИЕ1, _), НАЗВАНИЕ2))
    
    #define НФлагИнициализации(НАЗВАНИЕ1, НАЗВАНИЕ2) \
        Объединить(флаг_инициализации__, Определение2Названия( НАЗВАНИЕ1, НАЗВАНИЕ2 ))


    ../Исходники/Машинный/Сеть/Автоматы/SeleniumАвтоматизация.hpp: In static member function ‘static bool Машинный::Интернет::Автоматы::SeleniumАвтоматизация::СтатическиИнициализированныйSeleniumАвтоматизацияКласс()’:
    ../Исходники/Машинный/Определения/Типы Данных/../Уловки Кода.hpp:33:69: error: expected primary-expression before ‘,’ token
       33 |     Объединить(флаг_инициализации__, Определение2Названия( НАЗВАНИЕ1, НАЗВАНИЕ2 ))
          |                                                                     ^


    А теперь что не так?
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc, Как развернуть макрос внутри макроса?
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    А сейчас почему не собирается? Я ошибки не вижу.

    ../Исходники/Машинный/Сеть/Автоматы/../../База/Журнал.hpp: In static member function ‘static bool Журнал::СтатическиИнициализированныйЖурналКласс()’:
    ../Исходники/Машинный/Определения/Типы Данных/../Уловки Кода.hpp:30:59: error: expected primary-expression before ‘,’ token
       30 |     флаг_инициализации__ ## Определение2Названия(НАЗВАНИЕ1, НАЗВАНИЕ2)
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    jcmvbkbc,
    #define МашинныйОпределениеПсевдоСамоанализаКлассаРеализация(НАЗВАНИЕ_КЛАССА, БЛОК_КОДА) \
        Рефлексия::СписокДанныхОФункциях НАЗВАНИЕ_КЛАССА ## ::__Список_Методов_Класса; \
        МашинныйРеализацияСтатическогоБлокаИнициализацииКласса(НАЗВАНИЕ_КЛАССА, БЛОК_КОДА);


    а тот шо не так? ## должно связывать одно с переменными.
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    Lynn «Кофеман», Что тут с синтаксисом не так если на visual studio работает нормально?
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    как эквивалентно записать?
  • Почему не компилируется макрос?

    Nightmare1
    @Nightmare1 Автор вопроса
    visual studio компилил этот код без проблем, думал на линуксе так же. Буду использовать gcc везде тогда.