LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 03-02-2013, 10:38 PM   #1
dander062
LQ Newbie
 
Registered: Nov 2003
Location: Connecticut
Distribution: Debian 8.5
Posts: 27

Rep: Reputation: 15
New to C++ equivalent Visual Express error detection in g++/gdb ?


MS Visual Express C++ catches goofs such as:

int CLASSA = 80.00; //Cost per A Class ticket.

warning: initalizing: conversion from double to int, possible loss of data


I am looking to have the same thing using g++ but have not seen it in man.
 
Old 03-02-2013, 11:46 PM   #2
NevemTeve
Senior Member
 
Registered: Oct 2011
Location: Budapest
Distribution: Debian/GNU/Linux, AIX
Posts: 4,868
Blog Entries: 1

Rep: Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869Reputation: 1869
Couldn't test it at the moment, but here's some compiler flags you can try: -W -Wall -Wextra -pedantic
 
Old 03-03-2013, 10:01 AM   #3
ntubski
Senior Member
 
Registered: Nov 2005
Distribution: Debian, Arch
Posts: 3,783

Rep: Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083Reputation: 2083
You need -Wconversion, although it doesn't warn for 80.00 because there is no possible loss of precision there. It does for warn for 80.01.
 
1 members found this post helpful.
Old 03-03-2013, 11:21 AM   #4
dander062
LQ Newbie
 
Registered: Nov 2003
Location: Connecticut
Distribution: Debian 8.5
Posts: 27

Original Poster
Rep: Reputation: 15
I had been trying -Werror -Wall -Wextra

Thank you.
-Wconversion is what I was looking for. Just too bad it waits until 80.01 instead of 80.00.

I will have to get better at proofreading.
 
Old 03-05-2013, 01:12 PM   #5
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by dander062 View Post
I had been trying -Werror -Wall -Wextra

Thank you.
-Wconversion is what I was looking for. Just too bad it waits until 80.01 instead of 80.00.

I will have to get better at proofreading.
I am working (was aided by this forum) on what I call strict C++ types. At the moment:


Code:
sergei@amdam2:~/junk/c++_work/strict_types> cat -n main.cxx
     1  #include "Strict_types.hxx"
     2  #include <iostream>
     3
     4
     5  int main()
     6    {
     7    Strict_unsigned uu = 80.0;
     8    // Strict_unsigned u = 1; // error: ?Strict_unsigned::Strict_unsigned(int)? is private
     9    Strict_unsigned u1 = 1u;
    10
    11    std::cerr << "sizeof(Strict_unsigned)=" << sizeof(Strict_unsigned) << "\n";
    12
    13    std::cerr << "u1=" << u1.get() << "\n";
    14
    15    Strict_unsigned u2 = 2u;
    16
    17    u1 = u1 << u2; std::cerr << "u1=" << u1.get() << "\n";
    18
    19    u1 = 16u; std::cerr << "u1=" << u1.get() << "\n";
    20
    21    u1 >>= 2u; std::cerr << "u1=" << u1.get() << "\n";
    22
    23    u1 = u1 << 2u; std::cerr << "u1=" << u1.get() << "\n";
    24
    25    u1 *= (Strict_unsigned)2u; std::cerr << "u1=" << u1.get() << "\n";
    26
    27    return 0;
    28    }
sergei@amdam2:~/junk/c++_work/strict_types> ~/AFSWD/install/gcc-4.5.4/binsh/g++ -Wall -Wextra main.cxx -o main
Strict_types.hxx: In function ‘int main()’:
Strict_types.hxx:2882:5: error: ‘Strict_unsigned::Strict_unsigned(double)’ is private
main.cxx:7:24: error: within this context
sergei@amdam2:~/junk/c++_work/strict_types>
.

I.e. my goal is to be able to avoid exactly errors of such kind.
 
  


Reply

Tags
beginner, c++



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Looking for linux equivalent of __cpuid() intrinsic (porting from Visual Studio) Mr_Nuke Programming 10 02-24-2009 05:40 PM
Fire Event from other event in Visual C++ Express Edition chrisliando Programming 1 11-08-2007 05:12 PM
gcc equivalent for Visual C++ function: PeekNamedPipe () m3rc_2004 Programming 1 07-29-2005 05:58 AM
visual c++ equivalent? tardigrade Linux - Software 2 10-18-2004 01:45 AM
Visual Basic.Net Equivalent cucolin@ Programming 3 02-02-2004 07:51 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 05:09 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration