CMake/Tests/CompileFeatures/cxx_contextual_conversions.cpp
Kitware Robot d9fd2f5402 Revise C++ coding style using clang-format
Run the `Utilities/Scripts/clang-format.bash` script to update
all our C++ code to a new style defined by `.clang-format`.
Use `clang-format` version 3.8.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.
2016-05-16 16:05:19 -04:00

43 lines
635 B
C++

#define assert(E) \
if (!(E)) \
return 1;
template <class T>
class zero_init
{
public:
zero_init()
: val(static_cast<T>(0))
{
}
zero_init(T val)
: val(val)
{
}
operator T&() { return val; }
operator T() const { return val; }
private:
T val;
};
int someFunc()
{
zero_init<int*> p;
assert(p == 0);
p = new int(7);
assert(*p == 7);
delete p;
zero_init<int> i;
assert(i == 0);
i = 7;
assert(i == 7);
switch (i) {
}
int* vp = new int[i];
return 0;
}