Click here to Skip to main content
15,885,216 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Navel gazing on coding style? Pin
honey the codewitch18-Sep-22 23:05
mvahoney the codewitch18-Sep-22 23:05 
AnswerRe: Navel gazing on coding style? Pin
dan!sh 18-Sep-22 22:58
professional dan!sh 18-Sep-22 22:58 
AnswerRe: Navel gazing on coding style? Pin
Cpichols19-Sep-22 1:52
Cpichols19-Sep-22 1:52 
GeneralRe: Navel gazing on coding style? Pin
honey the codewitch19-Sep-22 3:19
mvahoney the codewitch19-Sep-22 3:19 
AnswerRe: Navel gazing on coding style? Pin
SeattleC++19-Sep-22 6:03
SeattleC++19-Sep-22 6:03 
AnswerRe: Navel gazing on coding style? Pin
Juan Pablo Reyes Altamirano19-Sep-22 6:39
Juan Pablo Reyes Altamirano19-Sep-22 6:39 
AnswerRe: Navel gazing on coding style? Pin
Micha Berger19-Sep-22 7:14
Micha Berger19-Sep-22 7:14 
RantI thought I knew C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch17-Sep-22 14:57
mvahoney the codewitch17-Sep-22 14:57 
C++
#include <stdio.h>
template<int Pin> class foo {
    constexpr const static int pin = Pin;
public:
    constexpr inline static char test() __attribute((always_inline)) {
        if(Pin==-1) {
            return 'A';
        } else {
            return 'B';
        }
    }
    static_assert(test()!=0,"test");
};
int main(int argc, char** argv) {
    // mov eax,65
    // movsx eax, al
    // mov esi, eax
    printf("%c\n",foo<-1>::test());
    // move esi, 65
    printf("%c\n",65);
    return 0;
}


I'd like someone smarter than I am to explain to me why the first printf does not generate a mov esi, 65 or even movsx esi, 65, but rather, 3 instructions that are seemingly redundant and yet don't get removed by the peephole optimizer, but I don't think that's going to happen.

The worst part is, I have a dozen libraries using a bus framework I wrote that relies on my bad assumptions about the code that is generated.

The upshot is the code is slow, and the only way to speed it up is to

A) rewrite it to not use templates

B) nix the ability to run multiple displays at once

But IT SHOULD NOT BE THIS WAY. I feel misled by the C++ documentation. But it was my fault for not checking my assumptions. Unsure | :~ Frown | :(
To err is human. Fortune favors the monsters.


modified 18-Sep-22 4:19am.

GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
PIEBALDconsult17-Sep-22 15:23
mvePIEBALDconsult17-Sep-22 15:23 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch17-Sep-22 15:25
mvahoney the codewitch17-Sep-22 15:25 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
Randor 17-Sep-22 16:47
professional Randor 17-Sep-22 16:47 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch17-Sep-22 16:57
mvahoney the codewitch17-Sep-22 16:57 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
Randor 17-Sep-22 17:06
professional Randor 17-Sep-22 17:06 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch17-Sep-22 17:20
mvahoney the codewitch17-Sep-22 17:20 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
Randor 17-Sep-22 17:30
professional Randor 17-Sep-22 17:30 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch17-Sep-22 22:20
mvahoney the codewitch17-Sep-22 22:20 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
k505418-Sep-22 5:04
mvek505418-Sep-22 5:04 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch18-Sep-22 5:10
mvahoney the codewitch18-Sep-22 5:10 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
k505418-Sep-22 5:51
mvek505418-Sep-22 5:51 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch18-Sep-22 6:01
mvahoney the codewitch18-Sep-22 6:01 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
CPallini18-Sep-22 20:48
mveCPallini18-Sep-22 20:48 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch17-Sep-22 22:23
mvahoney the codewitch17-Sep-22 22:23 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
Randor 18-Sep-22 1:23
professional Randor 18-Sep-22 1:23 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
honey the codewitch18-Sep-22 1:28
mvahoney the codewitch18-Sep-22 1:28 
GeneralRe: I thought I new C++ *sob* It has been inserting extra code on me this whole time. Pin
Randor 18-Sep-22 1:56
professional Randor 18-Sep-22 1:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.