fa
Feedback
C++ - Reddit

C++ - Reddit

رفتن به کانال در Telegram

Stay up-to-date with everything C++! Content directly fetched from the subreddit just for you. Join our group for discussions : @programminginc Powered by : @r_channels

نمایش بیشتر
227
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-27 روز
-130 روز
آرشیو پست ها
poll State of package managers in 2021 I feel like for the last 3yrs nothing ground breaking happened in this space and people have settled now (at least experimented and have a good idea) on the option they like the most. Which package manager do you use if any? does that choice maybe correlate with the size of the project? or if you were to start something new what would start with View Poll https://redd.it/lm1vno @r_cpp

Using Conan with CMake and Boost I’ve got a project that I wanted to use a Boost component for (because I haven’t played with Boost and am always looking to learn something new). Per Jason Turner’s recommendation on his YouTube channel I decided to use Conan to handle library dependencies. It took a bit to try to get Conan to find Boost appropriately. Turns out reading the manual is helpful and cmakefindboostmodular is the way to get just sub modules of Boost. My journey to figuring this out is written up here. https://redd.it/lm0qja @r_cpp

Build that one side project at UtkalHacks that you ever wished! Hey Hackers, Let's be honest, we all procrastinate and hustle to build that one side project that we couldn't get off of ours mind! **UtkalHacks** is that one last push you need to get that idea out to the world! 📢 Stoked to announce the 3rd edition of **UtkalHacks** , going entirely virtual. Let's get that side project built during this 15 days long hackathon while winning some useful prizes, learning some new topics in tech & design, building new relationships with people who are just as smart & curious as you! 😬 🔹 Winners: ₹30,000 + Special Prizes 🔹 Runners up: ₹20,000 + Special Prizes 🔹 Prizes for Best Girls Team 🔹 Prizes for Best Design Team 🔹 Prizes for Best Beginers Team This year, we are also focusing on long term & useful prizes for the best teams that could help you continue building even after the hackathon! 🎉 🔹 Three.js Journey life time Subscriptions 🔹 Egghead 1 year Subscriptions 🔹 More to be announced soon... Applications are based on review so make sure you standout from the crowd! 💪 🚀 Applications are open 👇 https://utkalhacks.tech/ Follow us on **Twitter** for latest updates! Spread the word 👇 https://twitter.com/emishacommunity/status/1359950256683708417 https://redd.it/lltivv @r_cpp

Ternary operator (mis-)optimization in MSVC I know that some of the MSVC devs lurk here, so I want to share an observation. I have a project which uses some ugly macros, eventually resulting in a chain of ternary operators, like the following: return x > 3 ? 2 : x > 2 ? 1 : x > 1 ? 1 : 1; As ugly as it might be, I expected any mature compiler to optimize the above to x > 3 ? 2 : 1, but I noticed that MSVC doesn't do that. Here's a godbolt example: https://godbolt.org/z/boevdx Interestingly, icc fails to optimize that, too. My project is not performance critical, but why just waste cycles? :) https://redd.it/llti32 @r_cpp

What is wrong with my Color Game? I am a Beginner. For my school, I need to create a color game. It's gambling but with colors. I don't know what is the problem. Instead of giving me what is the outcome of the color, it's " 0x602360, 0x602360, 0x602360, " instead of Colors. This is the code: \#include <iostream> \#include <cstdlib> \#include <conio.h> \#include <ctime> using namespace std; string colors[4\] = {"Red", "Orange", "Yellow", "Green"}; string pickedColors[3\]; int prize=0, rcounter=0, choice, bet; void no(); void yes(); void menu(); string ai(int seed){ string aichoice=colors[seed\]; return aichoice; } int main(){ menu(); } void menu(){ int choice, bet; char choice2; cout<<"Prize: "<<prize<<endl<<endl; cout<<"[0\] - Red \\n"; cout<<"[1\] - Orange \\n"; cout<<"[2\] - Yellow \\n"; cout<<"[3\] - Green \\n\\n"; cout<<"Your choice: \\n"; cin>>choice; cout<<"Your bet: \\n "; cin>>bet; cout<<"Do you want to roll?[Y/N\]: "; cin>>choice2; srand(time(0)); if(choice2== 'Y'|| choice2=='y'){ yes(); } else if(choice2=='N' || choice2=='n'){ no(); } } void yes(){ for(int i = 0; i < 3; i++) { int ranNum = rand() % 4 + 0; string aiAns = ai(ranNum); pickedColors[i\] = aiAns; cout<<pickedColors<<", "; if ( choice==0){ for(int i = 0; i < 3; i++) { if(pickedColors[i\] == "Red") { rcounter++; } } } else if(choice==1){ for(int i = 0; i < 3; i++) { if(pickedColors[i\] == "Orange") { rcounter++; if(rcounter!=0){ prize=prize+bet*rcounter; cout<<"your prize: "<<prize; menu(); } } } } else if(choice==2){ for(int i = 0; i < 3; i++) { if(pickedColors[i\] == "Yellow") { rcounter++; if(rcounter!=0){ prize=prize+bet*rcounter; cout<<"your prize: "<<prize; menu(); } } } } else if(choice==3){ for(int i = 0; i < 3; i++) { if(pickedColors[i\] == "Green") { rcounter++; if(rcounter!=0){ prize=prize+bet*rcounter; cout<<"your prize: "<<prize; menu(); } } } } } } void no(){ cout<<"your prize is: "<<prize; getch(); } https://redd.it/llrju5 @r_cpp

Date Processing Attracts Bugs or 77 Defects in Qt 6 found by PVS-Studio https://m.habr.com/ru/company/pvs-studio/blog/542758/ https://redd.it/llr82d @r_cpp

TTauri: modern retained-mode GUI library in C++20 with boost license https://github.com/ttauri-project/ttauri https://github.com/ttauri-project/ttauri\_hello\_world (A mini-example application embedding ttauri) Over the last two years I've been developing the ttauri gui library. It is a retained-mode GUI library written in modern C++. It uses a minimum of dependencies, of only the Vulkan SDK, Python and optionally RenderDoc. It also does not use a pre-processor for handling reflection. Although designed to be portable between operating systems, due to it using a lot of C++20 it can currently only be compiled using MSVC. And currently it only builds a static library to be linked to your application. It is definitely still a work in progress and I hope I will get some help to improve it. In the next few days I will open a lot of issues/projects to show what still needs to be done. Features: Retained mode GUI Modern C++20 Boost license Low latency game-like render loop with GPU accelerated rendering, optimised for animations but also for updating only the part of the window that needs to be rendered. Sub-pixel anti-aliased GPU accelerated text rendering. Most widgets are templates being able to observe values of different types. Localisation. Themes including dark/light mode. Current available widgets: Window, Overlay, Grid Layout, Row Layout, Column Layout, Scroll view, Tab view, Label, Button, Radio button, Checkbox, Toolbar, Tab buttons, Selection box, Single line text input field https://redd.it/llq4z7 @r_cpp

A virtual pet cat created in c++ that roams your desktop and drifts off on the tops of your windows. It keeps the atmosphere cozy and adds life to your screen! https://www.youtube.com/watch?v=lroXL39LBIk&ab_channel=seasaltcrackers https://redd.it/llc764 @r_cpp

Custom allocator for nested containers Hey Reddit, I am sorry for the last time I posed here with the horrible intending and poor overall quality. I am working on custom allocators. So far, I have tried to work on simple containers: std::list, std::vector, std::basic\_string, etc... My custom allocator is a static buffer allocator, its implementation is straightforward: &#x200B; #include <memory> template <typename T> class StaticBufferAlloc : std::allocator<T> { private: T *memory_ptr; std::size_t memory_size; public: typedef std::size_t size_type; typedef T *pointer; typedef T value_type; StaticBufferAlloc(T *memory_ptr, size_type memory_size) : memory_ptr(memory_ptr), memory_size(memory_size) {} StaticBufferAlloc(const StaticBufferAlloc &other) throw() : memory_ptr(other.memory_ptr), memory_size(other.memory_size){}; pointer allocate(size_type n, const void *hint = 0) { return memory_ptr; } // when allocate return the buffer void deallocate(T *ptr, size_type n) {} // empty cause the deallocation is buffer creator's responsability size_type max_size() const { return memory_size; } }; I am using it in this fashion: &#x200B; using inner = std::vector<int, StaticBufferAlloc<int>>; int buffer[201]; auto alloc1 = StaticBufferAlloc<int>(&buffer[100], 50); inner v1(0, alloc1); assert(v1.size() == 0); const int N = 10; // insert 10 integers for (size_t i = 0; i < N; i++) { v1.push_back(i); } assert(v1.size() == N); All good so far, when I grow N past the max buffer size it throws and that's expected. Now, I am trying to work with nested containers. In short, am trying to have a vector of the vector (matrix), where the parent vector and all its underlying elements (that are vectors i.e. containers) **share the same static buffer for allocation**. It looks like [scoped\_allocator](https://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor) can be a solution for my problem. using inner = std::vector<int, StaticBufferAlloc<int>>; using outer = std::vector<inner, std::scoped_allocator_adaptor<StaticBufferAlloc<inner>>>; int buffer[201]; auto alloc1 = StaticBufferAlloc<int>(&buffer[100], 50); auto alloc2 = StaticBufferAlloc<int>(&buffer[150], 50); inner v1(0, alloc1); inner v2(0, alloc2); assert(v1.size() == 0); assert(v2.size() == 0); const int N = 10; // insert 10 integers for (size_t i = 0; i < N; i++) { v1.push_back(i); v2.push_back(i); } assert(v1.size() == N); assert(v2.size() == N); outer v // <- how to construct this vector with the outer buffer? v.push_back(v1); v.push_back(v2); ... My question is how to initialize the outer vector on its constructor call with its static buffer? https://redd.it/ll7j3e @r_cpp

a good repo or tutorial to brush up on cpp? I've coded extensively in C back in undergrad (and a handful of C++ projects), but now I find myself mostly working with python and SQL. I have recently started working on graph data and we are thinking of using C++. Is there a good place where I can start looking? Ideally, a public repo of C++ code with decent documentation that I can follow and work with would be great. Any suggestions would be much appreciated. https://redd.it/ll2oce @r_cpp

Range-based for loop - lifetime extension The cppreference documentation for the range-based for-loop contains the following warning:
for (auto& x : foo().items()) // undefined behavior if foo() returns by value
{
    <loop-statement>
}
I wonder whether this could fixed by changing the definition of the range-based for-loop from
{
    <init-statement>
    auto&& __range = <range-expression>;
    auto __begin = <begin-expr>;
    auto __end = <end-expr>;
    for ( ; __begin != __end; ++__begin) {
        <range-declaration> = *__begin;
        <loop-statement>
    }
}
to something like
{
    auto __rangefor = [&](auto&& __rng) {
        <init-statement>
        auto __begin = <begin-expr>;
        auto __end = <end-expr>;
        for ( ; __begin != __end; ++__begin) {
            <range-declaration> = *__begin;
            <loop-statement>
        }
    };
    __rangefor(<range-expression>);
}
? https://redd.it/ll219i @r_cpp

Anyone knows how queue is implemented ? So, I created a queue and then I tried to go over its elements. To do this I created a pointer at the address of queue.back(). The first item works fine but when I try to go up or down ( *(pointer +/- 1)) I only get junk. Anyone could explain me why this doesn’t work ? Thanks in advance 😊 https://redd.it/lkq9nk @r_cpp