C++ Использование STL в программе без CRT

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции
86
Добрый вечер! Можно ли как то использовать STL библиотеку в программе без CRT? Насколько я знаю, это невозможно. Может я ошибаюсь.
 
Добрый вечер! Можно ли как то использовать STL библиотеку в программе без CRT? Насколько я знаю, это невозможно. Может я ошибаюсь.
я же надеюсь ты попробовал его использовать прежде чем писать на форум? если да, то какие ошибки возникают
 
си рантайм тебе как помешает стл использовать
 
я же надеюсь ты попробовал его использовать прежде чем писать на форум? если да, то какие ошибки возникают
2024-03-31_21-38-17.png
 
Вставляешь и спокойно юзаешь, ну либо ищи кастомный std::vector на гитхабе.

C++:
Expand Collapse Copy
extern "C"
{
#pragma function(memmove)
    void* __cdecl memmove(void* dest, const void* src, size_t num)
    {
        __movsb(static_cast<unsigned char*>(dest),
            static_cast<const unsigned char*>(src), num);
        return dest;
    }
}

void __cdecl __std_exception_copy(
    _In_  __std_exception_data const* _From,
    _Out_ __std_exception_data* _To
)
{
    return;
}

void __cdecl __std_exception_destroy(
    _Inout_ __std_exception_data* _Data
)
{
    return;
}

__declspec(noreturn) inline void _Xlen_string()
{
    return;
}

__declspec(noreturn) inline void _Throw_bad_array_new_length() {
    return;
}

#include <vector>

// usage
 
А ты пробовал обратится к GPT?
C++:
Expand Collapse Copy
#include <iostream>
#include <stdexcept>

template<typename T>
class CustomVector {
private:
    T* array;
    size_t capacity;
    size_t size;

public:
    CustomVector() : array(nullptr), capacity(0), size(0) {}

    CustomVector(size_t initialCapacity) : array(new T[initialCapacity]), capacity(initialCapacity), size(0) {}

    ~CustomVector() {
        delete[] array;
    }

    void push_back(const T& value) {
        if (size >= capacity) {
            resize(capacity == 0 ? 1 : capacity * 2);
        }
        array[size++] = value;
    }

    void resize(size_t newCapacity) {
        T* newArray = new T[newCapacity];
        for (size_t i = 0; i < size; ++i) {
            newArray[i] = std::move(array[i]);
        }
        delete[] array;
        array = newArray;
        capacity = newCapacity;
    }

    size_t getSize() const {
        return size;
    }

    size_t getCapacity() const {
        return capacity;
    }

    T& operator[](size_t index) {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }

    const T& operator[](size_t index) const {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }
};

int main() {
    CustomVector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (size_t i = 0; i < vec.getSize(); ++i) {
        std::cout << vec[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
 
А ты пробовал обратится к GPT?
Кому кроме тебя не похуй на твой гпт? А если у меня кастом импорты или подобие? Твой гпт нахуй не всрался в тяжелых проектах, его максимум в помощи это начиная от cout заканчивая asm
 
Кому кроме тебя не похуй на твой гпт? А если у меня кастом импорты или подобие? Твой гпт нахуй не всрался в тяжелых проектах, его максимум в помощи это начиная от cout заканчивая asm
Твое мнение тут не кому на важное.
Умей задавать правильно вопросы.
 
А ты пробовал обратится к GPT?
C++:
Expand Collapse Copy
#include <iostream>
#include <stdexcept>

template<typename T>
class CustomVector {
private:
    T* array;
    size_t capacity;
    size_t size;

public:
    CustomVector() : array(nullptr), capacity(0), size(0) {}

    CustomVector(size_t initialCapacity) : array(new T[initialCapacity]), capacity(initialCapacity), size(0) {}

    ~CustomVector() {
        delete[] array;
    }

    void push_back(const T& value) {
        if (size >= capacity) {
            resize(capacity == 0 ? 1 : capacity * 2);
        }
        array[size++] = value;
    }

    void resize(size_t newCapacity) {
        T* newArray = new T[newCapacity];
        for (size_t i = 0; i < size; ++i) {
            newArray[i] = std::move(array[i]);
        }
        delete[] array;
        array = newArray;
        capacity = newCapacity;
    }

    size_t getSize() const {
        return size;
    }

    size_t getCapacity() const {
        return capacity;
    }

    T& operator[](size_t index) {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }

    const T& operator[](size_t index) const {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }
};

int main() {
    CustomVector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (size_t i = 0; i < vec.getSize(); ++i) {
        std::cout << vec[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
обращался я к нему
 
Кому кроме тебя не похуй на твой гпт? А если у меня кастом импорты или подобие? Твой гпт нахуй не всрался в тяжелых проектах, его максимум в помощи это начиная от cout заканчивая asm
Чатгпт мне столько полезной хуйни написал, но видимо он бустит только тех кто умеет им пользоваться.
 
Назад
Сверху Снизу