Developer Guide and Reference

Contents

Weffc++, Qeffc++

Enables warnings based on certain C++ programming guidelines.

Syntax

Linux:
-Weffc++
Windows:
/Qeffc++
Arguments
None
Default
OFF
Diagnostics are not enabled.
Description
This option enables warnings based on certain programming guidelines developed by Scott Meyers in his books on effective C++ programming. With this option, the compiler emits warnings for these guidelines:
  • Use
    const
    and
    inline
    rather than
    #define
    . Note that you will only get this in user code, not system header code.
  • Use
    <iostream>
    rather than
    <stdio.h>
    .
  • Use
    new
    and
    delete
    rather than
    malloc
    and
    free
    .
  • Use C++ style comments in preference to C style comments. C comments in system headers are not diagnosed.
  • Use
    delete
    on pointer members in destructors. The compiler diagnoses any pointer that does not have a
    delete
    .
  • Make sure you have a user copy constructor and assignment operator in classes containing pointers.
  • Use initialization rather than assignment to members in constructors.
  • Make sure the initialization list ordering matches the declartion list ordering in constructors.
  • Make sure base classes have virtual destructors.
  • Make sure
    operator=
    returns
    *this
    .
  • Make sure prefix forms of increment and decrement return a
    const
    object.
  • Never overload operators
    &&
    ,
    ||
    , and
    ,
    .
The warnings generated by this compiler option are based on the following books from Scott Meyers:
  • Effective C++ Second Edition - 50 Specific Ways to Improve Your Programs and Designs
  • More Effective C++ - 35 New Ways to Improve Your Programs and Designs
IDE Equivalent
Visual Studio:
None
Eclipse:
Compilation Diagnostics > Enable Warnings for Style Guideline Violations
Alternate Options
None

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.