You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
using pcg64 stream operator make compilation fail with visual studio 2022 (pcg32 is ok though):
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31): error C2678: binary '|': no operator found which takes a left-hand operand of type 'pcg_extras::uint_x4<uint32_t,uint64_t>' (or there is no acceptable conversion) [D:\a\pcg-cpp\pcg-cpp\cppref.vcxproj]
(compiling source file 'sample/cppref-sample.cpp')
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
could be 'built-in C++ operator|(UIntX2, int)'
here is the minimal code to reproduce:
#include <iostream>
#include <iomanip>
#include <string>
#include <map>
#include <random>
#include <cmath>
#include <sstream>
#include "pcg_random.hpp"
int main()
{
// Make a random number engine
pcg64 rng(0);
// save state
std::stringstream stream;
stream << rng;
std::cout << "state="<<stream.str()<<std::endl;
//reload stream
stream >> rng;
}
here is the complete compiler output:
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31): error C2678: binary '|': no operator found which takes a left-hand operand of type 'pcg_extras::uint_x4<uint32_t,uint64_t>' (or there is no acceptable conversion) [D:\a\pcg-cpp\pcg-cpp\cppref.vcxproj]
(compiling source file 'sample/cppref-sample.cpp')
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
could be 'built-in C++ operator|(UIntX2, int)'
with
[
UIntX2=uint64_t
]
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
'|': cannot convert argument 1 from 'pcg_extras::uint_x4<uint32_t,uint64_t>' to 'UIntX2'
with
[
UIntX2=uint64_t
]
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
or 'built-in C++ operator|(bool, int)'
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
'|': cannot convert argument 1 from 'pcg_extras::uint_x4<uint32_t,uint64_t>' to 'bool'
D:\a\pcg-cpp\pcg-cpp\include\pcg_uint128.hpp(837,22):
or 'pcg_extras::uint_x4<UInt,UIntX2> pcg_extras::operator |(const pcg_extras::uint_x4<UInt,UIntX2> &,const pcg_extras::uint_x4<UInt,UIntX2> &)'
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
'pcg_extras::uint_x4<UInt,UIntX2> pcg_extras::operator |(const pcg_extras::uint_x4<UInt,UIntX2> &,const pcg_extras::uint_x4<UInt,UIntX2> &)': could not deduce template argument for 'const pcg_extras::uint_x4<UInt,UIntX2> &' from 'int'
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
while trying to match the argument list '(pcg_extras::uint_x4<uint32_t,uint64_t>, int)'
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(336,31):
the template instantiation context (the oldest one first) is
D:\a\pcg-cpp\pcg-cpp\sample\cppref-sample.cpp(49,11):
see reference to class template instantiation 'pcg_detail::engine<uint64_t,pcg_extras::pcg128_t,pcg_detail::xsl_rr_mixin<uint64_t,pcg_extras::pcg128_t>,false,pcg_detail::specific_stream<pcg_extras::pcg128_t>,pcg_detail::default_multiplier<pcg_extras::pcg128_t>>' being compiled
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(379,23):
see reference to class template instantiation 'pcg_detail::specific_stream<pcg_extras::pcg128_t>' being compiled
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(334,10):
while compiling class template member function 'void pcg_detail::specific_stream<pcg_extras::pcg128_t>::set_stream(itype)'
with
[
itype=pcg_extras::pcg128_t
]
D:\a\pcg-cpp\pcg-cpp\include\pcg_random.hpp(624,26):
see the first reference to 'pcg_detail::specific_stream<pcg_extras::pcg128_t>::set_stream' in 'pcg_detail::operator >>'
The text was updated successfully, but these errors were encountered:
using pcg64 stream operator make compilation fail with visual studio 2022 (pcg32 is ok though):
here is the minimal code to reproduce:
here is the complete compiler output:
The text was updated successfully, but these errors were encountered: