Pull to refresh
0
0
Send message
Эксперимент с коллегами проводился при одинаковом освещении?
Обрезался мой комментарий. Там в самом низу было сказано, что в релизе трассировка отключается простой заменой макросов на пустышки. Трасса нужна только для отладки. В релизе ей ни в каком виде не место.
У меня, в свое время попроще получилось. Идея в том, что объект создается на стеке, в конструкторе пишет в лог, и при удалении в деструкторе так же пишет в лог.
some.cpp

#include «tracer.h»
void f()
{
TRACE_;
}

tracer.h
#define TRACE_ tracer tracer__( std::string( __PRETTY_FUNCTION__ )+" "+std::string( __FILE__ ) )
#define TRACE_R(i) tracer tracer__( std::string( __PRETTY_FUNCTION__ )+" "+std::string( __FILE__ ), i )

template
class tracer
{
string f;
public:

tracer( const string& s ) :f( s )
{
string tab( thread_trace_counter::inst().get(), ' ' );
OUT_TO_FILE( tab + ">> " + f );
thread_trace_counter::inst().increment();
}

~tracer()
{
thread_trace_counter::inst().decrement();
string tab( thread_trace_counter::inst().get(), ' ' );
OUT_TO_FILE( tab + "
нифига не работает :) неверная тестовая последовательность была — привела к ложному "верному" результату.
Элементарно.
Int main()
{
vector v = {1,2,3,3,1,2,4,7};
//vector v = {1,2,7,4,1,2,3,3};
//vector v = {1,2,3,4,1,2,3,7};
int p = 0;
int s = 0;
int pp = 0;
int ss = 0;
for( size_t i = 0; i < v.size(); i++ )
{
if( i < (v.size() / 2) )
p = p ^ v[i];
else
s = s ^ v[i];

if( (i%2) == 0 )
pp = pp ^ v[i];
else
ss = ss ^ v[i];
}

if( (p^pp) == p || (s^ss) == s )
{
cout

Information

Rating
Does not participate
Registered
Activity