Date: Thu, 2 Apr 2026 09:46:06 +0500
basically, the turn of events were these:
dealing with the errors in https://quick-bench.com/ was painful because it
wasn't accepting user input when i debugged it all, then when i complete
the program, I didn't have a compiler, then had a emotional fight with my
mom, then tried installing a compiler, failed at first, installed an old
one at the second, then at last, it worked. Sorry for trauma dumping, but I
just cant hold it back when I am missing on time with the math book that I
love so dearly(my routine didn't turn out the way it was supposed to), and
during all that I got an email from a guy from the standard(according to
linkdin) calling my idea stupid and to not continue it; Life really had to
give me this meltdown. Sorry for the trauma dump story. Ignore it, please
(for me)
On Thu, Apr 2, 2026 at 9:45 AM Muneem <itfllow123_at_[hidden]> wrote:
> Hi!
> //sorry for my late bench mark results; I had a very unfortunate turn of
> events in the past few hours. REALLY REALLY SORRY!!!!
> #include <variant>!!
> #include <iostream>
> #include <chrono>
> #include <ctime>
> #include <iomanip>
> struct A { inline int get(){return 1;} };
> struct B { inline int get(){return 2;} };
> struct C { inline int get(){return 3;} };
>
> struct data_accessed_through_visit {
> static std::variant<A, B, C> obj;
> int operator()(int) {
> int a1;
> std::visit([&a1](auto&& arg) { a1= arg.get(); }, obj);
> return a1;
> }
> };
>
> std::variant<A, B, C> data_accessed_through_visit::obj = C{};
> int a_val = 1, b_val = 2, c_val = 10;
> int user_index = 0;
>
> struct data_ternary {
> int operator()(int index) {
> return (index == 0) ? a_val : (index == 1) ? b_val : (index == 2)
> ? c_val : -1;
> }
> };
>
> struct data_switched {
> int operator()(int index) {
> switch(index) {
> case 0: return a_val;
> case 1: return b_val;
> case 2: return c_val;
> default: return -1;
> }
> }
> };
>
>
>
>
>
> volatile int x = 0;
> constexpr uint64_t loop_count=100000;
> static void measure_switch() {
> data_switched obj;
> for (int i=0; i++<loop_count;) {
> x = obj(user_index);
> }
> }
>
> static void measure_visit() {
> data_accessed_through_visit obj;
> for (int i=0; i++<loop_count;) {
> x = obj(user_index);
> }
> }
>
> static void measure_ternary() {
> data_ternary obj;
> for (int i=0; i++<loop_count;) {
> x = obj(user_index);
> }
> }
>
> template<typename func_t>
> void call_func(func_t callable_obj, int arg){
> const auto start = std::chrono::steady_clock::now();
> callable_obj();
> const auto end = std::chrono::steady_clock::now();
>
> std::cout<<
> std::chrono::duration_cast<std::chrono::nanoseconds>(end -
> start).count()
> <<std::endl;
>
> }
>
> int main(){
> std::cout << "Enter index (0 for A, 1 for B, 2 for C): ";
> if (!(std::cin >> user_index)) std::cerr<<"error!";
> if (user_index == 0) data_accessed_through_visit::obj = A{};
> else if (user_index == 1) data_accessed_through_visit::obj = B{};
> else if (user_index == 2) data_accessed_through_visit::obj = C{};
> std::cout<<"time taken for switch statements:";
> measure_switch();
> std::cout<<"time taken for visit:";
> measure_visit();
> std::cout<<"time taken for ternary:";
>
> measure_ternary();
> return 0;
>
> }
> /*
> results:
> Time (ns) for switch: 442900
> Time (ns) for visit: 3682600
> Time (ns) for ternary: 248300
> Told you!!!
> thank you for all of you're feedbacks!!!
> */
> regards, Muneem
>
>
> On Thu, Apr 2, 2026 at 8:26 AM Muneem <itfllow123_at_[hidden]> wrote:
>
>> The benchmarking tools that you (Breno Guimarães )
>> suggested didn't work because they do compile time optimizations on the
>> indexing itself (if the index can be determined at compile time), and when
>> I tried to make them read the index, it didn't work as expected, hence it
>> will take some time for me to write my own benchmarking code..
>> To the response I got from a very senior person, I wanna say that even
>> though this idea might not be within the logical framework of C++, I would
>> still push for it until there is a mathematical proof to specify otherwise.
>> I hope this isnt disrespect. Sorry for the delay on benchmarks too, guys; I
>> was busy eating breakfast.
>>
>> On Thu, Apr 2, 2026 at 8:24 AM Muneem <itfllow123_at_[hidden]> wrote:
>>
>>> Before I add some code, I wanna specify that I know references are the
>>> same as pointers,but compilers can (in theory optimize them better because
>>> they are like constant pointers).
>>>
>>> On Thu, Apr 2, 2026 at 6:35 AM Breno Guimarães <brenorg_at_[hidden]>
>>> wrote:
>>>
>>>> Try adding actual code showing the problem and how it looks like with
>>>> the different options you claim de be not sufficient and how the code would
>>>> look like with your solutions.
>>>>
>>>> There are many wrong assumptions on how things work today. I honestly
>>>> cannot understand what you are actually proposing.
>>>>
>>>> Em qua., 1 de abr. de 2026, 20:37, Muneem via Std-Proposals <
>>>> std-proposals_at_[hidden]> escreveu:
>>>>
>>>>> This is the updated proposal
>>>>>
>>>>> On Thu, Apr 2, 2026 at 1:45 AM Muneem <itfllow123_at_[hidden]> wrote:
>>>>>
>>>>>> Ok, I will draft a format proposal that outline all the problems (a
>>>>>> whole class of problems), cite all the possible solutions, and then cite
>>>>>> bjarne Stroustrup quotes from his old 2013 book to back my philosophy up.
>>>>>> Give me some time and thank you for your feedback ❤️❤️
>>>>>>
>>>>>> Regards, Muneem
>>>>>>
>>>>>> On Thu, 2 Apr 2026, 1:15 am Thiago Macieira via Std-Proposals, <
>>>>>> std-proposals_at_[hidden]> wrote:
>>>>>>
>>>>>>> On Wednesday, 1 April 2026 10:52:08 Pacific Daylight Time Muneem via
>>>>>>> Std-
>>>>>>> Proposals wrote:
>>>>>>> > Okay, I won't make the JIT part in my proposal, but just so I
>>>>>>> know, you do
>>>>>>> > support me if I dont? Like you will vouch for me and help me in my
>>>>>>> actual
>>>>>>> > formal proposal?
>>>>>>>
>>>>>>> I haven't understood the problem yet. You need to start the proposal
>>>>>>> with the
>>>>>>> problems (plural) that need solving, preferably with multiple
>>>>>>> possible
>>>>>>> alternatives and showing why you think your solution is best.
>>>>>>>
>>>>>>> --
>>>>>>> Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
>>>>>>> Principal Engineer - Intel Data Center - Platform & Sys. Eng.
>>>>>>> --
>>>>>>> Std-Proposals mailing list
>>>>>>> Std-Proposals_at_[hidden]
>>>>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>>>>
>>>>>> --
>>>>> Std-Proposals mailing list
>>>>> Std-Proposals_at_[hidden]
>>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>>
>>>>
dealing with the errors in https://quick-bench.com/ was painful because it
wasn't accepting user input when i debugged it all, then when i complete
the program, I didn't have a compiler, then had a emotional fight with my
mom, then tried installing a compiler, failed at first, installed an old
one at the second, then at last, it worked. Sorry for trauma dumping, but I
just cant hold it back when I am missing on time with the math book that I
love so dearly(my routine didn't turn out the way it was supposed to), and
during all that I got an email from a guy from the standard(according to
linkdin) calling my idea stupid and to not continue it; Life really had to
give me this meltdown. Sorry for the trauma dump story. Ignore it, please
(for me)
On Thu, Apr 2, 2026 at 9:45 AM Muneem <itfllow123_at_[hidden]> wrote:
> Hi!
> //sorry for my late bench mark results; I had a very unfortunate turn of
> events in the past few hours. REALLY REALLY SORRY!!!!
> #include <variant>!!
> #include <iostream>
> #include <chrono>
> #include <ctime>
> #include <iomanip>
> struct A { inline int get(){return 1;} };
> struct B { inline int get(){return 2;} };
> struct C { inline int get(){return 3;} };
>
> struct data_accessed_through_visit {
> static std::variant<A, B, C> obj;
> int operator()(int) {
> int a1;
> std::visit([&a1](auto&& arg) { a1= arg.get(); }, obj);
> return a1;
> }
> };
>
> std::variant<A, B, C> data_accessed_through_visit::obj = C{};
> int a_val = 1, b_val = 2, c_val = 10;
> int user_index = 0;
>
> struct data_ternary {
> int operator()(int index) {
> return (index == 0) ? a_val : (index == 1) ? b_val : (index == 2)
> ? c_val : -1;
> }
> };
>
> struct data_switched {
> int operator()(int index) {
> switch(index) {
> case 0: return a_val;
> case 1: return b_val;
> case 2: return c_val;
> default: return -1;
> }
> }
> };
>
>
>
>
>
> volatile int x = 0;
> constexpr uint64_t loop_count=100000;
> static void measure_switch() {
> data_switched obj;
> for (int i=0; i++<loop_count;) {
> x = obj(user_index);
> }
> }
>
> static void measure_visit() {
> data_accessed_through_visit obj;
> for (int i=0; i++<loop_count;) {
> x = obj(user_index);
> }
> }
>
> static void measure_ternary() {
> data_ternary obj;
> for (int i=0; i++<loop_count;) {
> x = obj(user_index);
> }
> }
>
> template<typename func_t>
> void call_func(func_t callable_obj, int arg){
> const auto start = std::chrono::steady_clock::now();
> callable_obj();
> const auto end = std::chrono::steady_clock::now();
>
> std::cout<<
> std::chrono::duration_cast<std::chrono::nanoseconds>(end -
> start).count()
> <<std::endl;
>
> }
>
> int main(){
> std::cout << "Enter index (0 for A, 1 for B, 2 for C): ";
> if (!(std::cin >> user_index)) std::cerr<<"error!";
> if (user_index == 0) data_accessed_through_visit::obj = A{};
> else if (user_index == 1) data_accessed_through_visit::obj = B{};
> else if (user_index == 2) data_accessed_through_visit::obj = C{};
> std::cout<<"time taken for switch statements:";
> measure_switch();
> std::cout<<"time taken for visit:";
> measure_visit();
> std::cout<<"time taken for ternary:";
>
> measure_ternary();
> return 0;
>
> }
> /*
> results:
> Time (ns) for switch: 442900
> Time (ns) for visit: 3682600
> Time (ns) for ternary: 248300
> Told you!!!
> thank you for all of you're feedbacks!!!
> */
> regards, Muneem
>
>
> On Thu, Apr 2, 2026 at 8:26 AM Muneem <itfllow123_at_[hidden]> wrote:
>
>> The benchmarking tools that you (Breno Guimarães )
>> suggested didn't work because they do compile time optimizations on the
>> indexing itself (if the index can be determined at compile time), and when
>> I tried to make them read the index, it didn't work as expected, hence it
>> will take some time for me to write my own benchmarking code..
>> To the response I got from a very senior person, I wanna say that even
>> though this idea might not be within the logical framework of C++, I would
>> still push for it until there is a mathematical proof to specify otherwise.
>> I hope this isnt disrespect. Sorry for the delay on benchmarks too, guys; I
>> was busy eating breakfast.
>>
>> On Thu, Apr 2, 2026 at 8:24 AM Muneem <itfllow123_at_[hidden]> wrote:
>>
>>> Before I add some code, I wanna specify that I know references are the
>>> same as pointers,but compilers can (in theory optimize them better because
>>> they are like constant pointers).
>>>
>>> On Thu, Apr 2, 2026 at 6:35 AM Breno Guimarães <brenorg_at_[hidden]>
>>> wrote:
>>>
>>>> Try adding actual code showing the problem and how it looks like with
>>>> the different options you claim de be not sufficient and how the code would
>>>> look like with your solutions.
>>>>
>>>> There are many wrong assumptions on how things work today. I honestly
>>>> cannot understand what you are actually proposing.
>>>>
>>>> Em qua., 1 de abr. de 2026, 20:37, Muneem via Std-Proposals <
>>>> std-proposals_at_[hidden]> escreveu:
>>>>
>>>>> This is the updated proposal
>>>>>
>>>>> On Thu, Apr 2, 2026 at 1:45 AM Muneem <itfllow123_at_[hidden]> wrote:
>>>>>
>>>>>> Ok, I will draft a format proposal that outline all the problems (a
>>>>>> whole class of problems), cite all the possible solutions, and then cite
>>>>>> bjarne Stroustrup quotes from his old 2013 book to back my philosophy up.
>>>>>> Give me some time and thank you for your feedback ❤️❤️
>>>>>>
>>>>>> Regards, Muneem
>>>>>>
>>>>>> On Thu, 2 Apr 2026, 1:15 am Thiago Macieira via Std-Proposals, <
>>>>>> std-proposals_at_[hidden]> wrote:
>>>>>>
>>>>>>> On Wednesday, 1 April 2026 10:52:08 Pacific Daylight Time Muneem via
>>>>>>> Std-
>>>>>>> Proposals wrote:
>>>>>>> > Okay, I won't make the JIT part in my proposal, but just so I
>>>>>>> know, you do
>>>>>>> > support me if I dont? Like you will vouch for me and help me in my
>>>>>>> actual
>>>>>>> > formal proposal?
>>>>>>>
>>>>>>> I haven't understood the problem yet. You need to start the proposal
>>>>>>> with the
>>>>>>> problems (plural) that need solving, preferably with multiple
>>>>>>> possible
>>>>>>> alternatives and showing why you think your solution is best.
>>>>>>>
>>>>>>> --
>>>>>>> Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
>>>>>>> Principal Engineer - Intel Data Center - Platform & Sys. Eng.
>>>>>>> --
>>>>>>> Std-Proposals mailing list
>>>>>>> Std-Proposals_at_[hidden]
>>>>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>>>>
>>>>>> --
>>>>> Std-Proposals mailing list
>>>>> Std-Proposals_at_[hidden]
>>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>>
>>>>
Received on 2026-04-02 04:46:23
