#include<bitset>#include<iostream>// Not enum class since it must be used like a bitfieldenumState{STATE_MAXIMIZED=0,STATE_FULLSCREEN,STATE_RESIZING,STATE_ACTIVATED,STATE_COUNT};usingStateBitset=std::bitset<STATE_COUNT>;intmain(){StateBitsetbitset;std::cout<<"Bitset size: "<<bitset.size()<<'\n';std::cout<<"size_t size: "<<sizeof(size_t)<<'\n';}voidfunction(StateBitsetbitset){std::cout<<bitset.size()<<'\n';}
yields a potential false positive performance warning when running
I found out that the code here:
https://coliru.stacked-crooked.com/view?id=4d0cc8073c899e6d
yields a potential false positive performance warning when running
The program's output is this:
which means that passing the bitset by value is actually equally expensive as passing it by reference.
Thanks for reporting, ticket is here: https://trac.cppcheck.net/ticket/12961