Skip to content

Replace include guards with #pragma once#1524

Open
johnhaddon wants to merge 2 commits into
ImageEngine:mainfrom
johnhaddon:pragmaOnce
Open

Replace include guards with #pragma once#1524
johnhaddon wants to merge 2 commits into
ImageEngine:mainfrom
johnhaddon:pragmaOnce

Conversation

@johnhaddon
Copy link
Copy Markdown
Member

No description provided.

@danieldresser-ie
Copy link
Copy Markdown
Contributor

LGTM

Otherwise Clang on Mac complains like so :

```
In file included from include/IECore/ScaledDataConversion.h:62:
include/IECore/ScaledDataConversion.inl:146:42: error: implicit conversion from 'std::numeric_limits<int>::type' (aka 'int') to 'float' changes value from 2147483647 to 2147483648 [-Werror,-Wimplicit-const-int-float-conversion]
				float result = static_cast<float>(f) * std::numeric_limits<T>::max();
```

I'm not sure that hardcoding the usage of float in these function is a good idea - what if one of the types involved is double? But for now I am just making the behaviour of the original code explicit to get it passed the compiler unchanged.
@johnhaddon
Copy link
Copy Markdown
Member Author

I pushed 020fc3f to fix a compilation error on Mac - would be good if you could take a quick look at that please @danieldresser-ie.

@danieldresser-ie
Copy link
Copy Markdown
Contributor

I'm trying to wrap my head around that last commit, and I think my conclusion is that ScaledDataConversion could probably be expressed far more simply and clearly now that we have constexpr if, and it should probably be rewritten ( or better yet removed in favour of something more specific to the places we might actually use it ). Which I guess means I'm totally in favour of just putting in a hack to get it compiling for now. I'm assuming the reason why the cast to float hasn't been previously causing problems is that the main reason you would want to store floats as integers is if you're wanting to pack them into small data types ( ie, classic image formats where each channel is one byte ) ... people who need double precision probably aren't storing floats as integers?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants